ホームページ >PHPフレームワーク >YII >yii2 検証コードのスタイルを設定する方法

yii2 検証コードのスタイルを設定する方法

angryTom
angryTomオリジナル
2020-02-17 17:57:082811ブラウズ

yii2 検証コードのスタイルを設定する方法

yii2 検証コード スタイルの設定方法

最初のステップ、コントローラー:

任意のコントローラーのメソッドを書き換える

public function actions()
{        return [
        'captcha' => [
            'class' => 'yii\captcha\CaptchaAction',
            'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
            'backColor' => 0x000000,//背景颜色
            'maxLength' => 6, //最大显示个数
            'minLength' => 5,//最少显示个数
            'padding' => 5,//间距
            'height' => 40,//高度
            'width' => 130,  //宽度
            'foreColor' => 0xffffff,     //字体颜色
            'offset' => 4,        //设置字符偏移量 有效果
        ],       ]; 
}

2 番目のステップ、フォーム モデル:

ここでは、検証コードの関連部分のみを示します。

おすすめの関連記事チュートリアル: yii チュートリアル

class ContactForm extends Model{    
    public $verifyCode;    
    public function rules(){        
            return [
                ['verifyCode', 'required'],
                ['verifyCode', 'captcha'],
          ];
    }
}

検証ルール内の検証コードの検証者は captcha です。

3 番目のステップ、表示:

ActiveForm を使用して、対応するフィールドを生成します。

captchaActionパラメータは、最初のステップが書き​​込まれる場所を指定します。デフォルトは site 内です。

 <?= $form->field($model, &#39;verifyCode&#39;)->widget(Captcha::className(), [
    &#39;template&#39; => &#39;<div class="row"><div class="col-lg-3">{image}</div><div class="col-lg-6">{input}</div></div>&#39;,
 ]) ?>

検証コードの生成と検証の全プロセスが完了しました。

上記は検証コードを生成するプロセスですが、検証コード番号はコード内にハードコーディングされているため、番号が必要な場合はどうすればよいでしょうか?

これは簡単です。CaptchaAction を継承し、generateVerifyCode メソッドをオーバーライドするクラスを自分で作成できます。例:

namespace yii\captcha;
class   Newcaptcha extends CaptchaAction
{
    protected function generateVerifyCode()
    {
        if ($this->minLength > $this->maxLength) {
            $this->maxLength = $this->minLength;
        }
        if ($this->minLength < 3) {
            $this->minLength = 3;
        }
        if ($this->maxLength > 20) {
            $this->maxLength = 20;
        }
        $length = mt_rand($this->minLength, $this->maxLength);

        $letters = &#39;1234567890123456789012&#39;;
        $vowels = &#39;aeiou&#39;;
        $code = &#39;&#39;;
        for ($i = 0; $i < $length; ++$i) {
            if ($i % 2 && mt_rand(0, 10) > 2 || !($i % 2) && mt_rand(0, 10) > 9) {
                $code .= $vowels[mt_rand(0, 4)];
            } else {
                $code .= $letters[mt_rand(0, 20)];
            }
        }
        return $code;
    }
}

クラス ファイルは正常に生成されます。
次に、コントローラーの設定を変更します

&#39;captcha&#39; => [
    &#39;class&#39; => &#39;yii\captcha\Newcaptcha&#39;,
    &#39;maxLength&#39; => 5,
    &#39;minLength&#39; =>5
],

さて、変更は完了しました。効果を見てみましょう!

詳細 Yii フレームワークについてさらに詳しく知りたい場合は、関連する プログラミング学習コース をご覧ください。 !

以上がyii2 検証コードのスタイルを設定する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。