Yii2在modules中加入驗證碼的方法

小云云
發布: 2023-03-20 10:20:02
原創
1404 人瀏覽過

最近玩了下Yii2的驗證碼部分,正常的邏輯都可以走通的,網路上的例子也是沒有問題的,關鍵有問題的部分是在module中使用的時候,分享給大家,往下看之前可以去看看正常情況是如何使用的。本文主要和大家介紹了Yii2 如何在modules中添加驗證碼的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟著小編過來看看吧,希望能幫助大家。

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);?>
登入後複製

相關推薦:

#vuex2.0 之modules實例詳解

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

yaf框架中modules下的目錄,設定二級網域

#

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

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板