LoginForm裏有一個 public function authenticate($attribute,$params) UserIdentity 裏有一個 public function authenticate() Cmodel裏有一個 public function validate($attributes=null, $clearErrors=true)數據庫
我以前總把這三個方法搞混了.app
2.Useridentity裏的authenticate是驗證用的,通常是根據new時傳到構造方法裏的用戶名,密碼.到數據庫裏去比對.比對成功,接下來的操做就應該是把Useridentity對象傳到 Yii::app()->user->login("$useridentity"); 這樣在全局就能夠獲得用戶是否登陸的狀態了ide
3.model裏的validate是作什麼的呢?是根據你rules()裏定義的各個字段對應的校驗器逐一的校驗,好比用戶名爲空啊,密碼長度啊,等等. 1中提到的authenticate 就是咱們自定義的校驗器ui