首頁  >  文章  >  後端開發  >  Yii2 如何在modules中加入驗證碼的方法詳解

Yii2 如何在modules中加入驗證碼的方法詳解

怪我咯
怪我咯原創
2017-07-04 14:06:111457瀏覽

這篇文章主要介紹了Yii2 如何在modules中添加驗證碼的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟著小編過來看看吧

最近玩了下Yii2的驗證碼部分,正常的邏輯都可以走通的,網上的例子也是沒有問題的,關鍵有問題的部分是在module中使用的時候,分享給大家,往下看之前可以去看看正常情況是如何使用的。

controller部分的程式碼,這裡的跟網路上的都類似

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

model 部分的程式碼【這裡是需要注意的】

public function rules()
{
  return [
    ['username', 'required', 'message' => '登录账号不能为空'],
    ['password', 'required', 'message' => '登录密码不能为空'],
    ['verifyCode', 'required', 'message' => '验证码不能为空'],
    ['verifyCode', 'captcha', 'captchaAction' => 'admin/default/captcha', 'message' => '验证码输入错误'],
    ['rememberMe', 'boolean'],
    ['password', 'validatePassword'],
  ];
}

rules中的verifyCode,需要加一個captchaAction對應的值,不然會出現驗證碼驗證不通過,而且驗證碼的的數字也不會變化,原因應該是預設使用了site/captcha導致的

view部分的程式碼【由於php跟html的混排導致我無法忍受頁面樣式的混亂排版,所以盡量將參數配置部分拿出來】

$captchaConfig = [
  'name' => 'captchaimg',
  'captchaAction' => ['/admin/default/captcha'],
  &#39;template&#39; => &#39;<p class="form-group"><p>{image}</p></p>&#39;,
  &#39;imageOptions&#39; => [
    &#39;id&#39; => &#39;captchaimg&#39;,
    &#39;title&#39; => &#39;换一个&#39;,
    &#39;alt&#39; => &#39;换一个&#39;,
    &#39;style&#39; => &#39;cursor:pointer;margin-left:25px;&#39;,
  ],
];
<?=Captcha::widget($captchaConfig);?>

以上是Yii2 如何在modules中加入驗證碼的方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn