小編給大家分享一下yii2框架實(shí)現(xiàn)注冊(cè)的方法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)建站!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、成都微信小程序、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了五通橋免費(fèi)建站歡迎大家使用!
yii2框架實(shí)現(xiàn)注冊(cè):
在advanced模板中,進(jìn)入frontend/index.php?r=site%2Fsignup頁(yè)面,可以看到框架的注冊(cè)頁(yè)面
填寫完Username、Email和Password后點(diǎn)擊Signup后,如果格式不對(duì),frontend/models/SignuForm中的rules()函數(shù)會(huì)進(jìn)行初步驗(yàn)證,所有格式正確后,數(shù)據(jù)傳輸?shù)?frontend/controllers /SiteController中的 actionSignup()函數(shù)中,函數(shù)加載用戶輸入的注冊(cè)信息,在frontend/models/SignupForm中的signup()函數(shù)。
以下引用的文字為解釋函數(shù)中的具體細(xì)節(jié),不閱讀不影響整體,因?yàn)闆](méi)有折疊文字功能,故采用引用的方法,下同
if (!$this->validate()) { return null; }
signup() 函數(shù)首先調(diào)用 yii2/base/Model中的validate() 函數(shù)進(jìn)行驗(yàn)證
第一步,清除使用frontend/models/SignuForm中的rules()函數(shù)在用戶輸入時(shí)的錯(cuò)誤信息
if ($clearErrors) { $this->clearErrors(); }
第二步,beforeValidate()函數(shù)觸發(fā)beforeValidate事件并返回true
第三步,設(shè)置scenario,默認(rèn)是default
第四步,因?yàn)檫@里的$attributeNames為null,
$attributeNames = $this->activeAttributes();
執(zhí)行后返回
array(3) { [0]=> string(8) "username" [1]=> string(5) "email" [2]=> string(8) >"password" }
第五步,$this->getActiveValidators()會(huì)得到frontend/models/SignuForm中的rules()中11條驗(yàn)證規(guī)則給validateAttributes()進(jìn)行驗(yàn)證
第六步,執(zhí)行afterValidate()函數(shù)觸發(fā)afterValidate事件
最后 如果所有驗(yàn)證都通過(guò),$this->hasErrors()為false,所以函數(shù)最后返回true
以上是“yii2框架實(shí)現(xiàn)注冊(cè)的方法”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!