我運行的CakePHP V2.4和文檔顯示控制內置的驗證組件行爲的幾個自定義選項。但是,我沒有看到任何關於在login()或logout()之後添加回調的問題。CakePHP的:如何回調添加到驗證::登錄()或驗證::註銷()
我需要運行一些與這些操作相關的其他例程,並且該代碼要在集中式回調中生存很多DRYer,而不是在調用login()或logout()時將其重寫。
我運行的CakePHP V2.4和文檔顯示控制內置的驗證組件行爲的幾個自定義選項。但是,我沒有看到任何關於在login()或logout()之後添加回調的問題。CakePHP的:如何回調添加到驗證::登錄()或驗證::註銷()
我需要運行一些與這些操作相關的其他例程,並且該代碼要在集中式回調中生存很多DRYer,而不是在調用login()或logout()時將其重寫。
class UsersController extends AppController {
function afterLogin($successfully){
if($successfully == true){
// do something if logged successfully
}else{
// do something if not
}
}
}
在你的回答中調用'afterLogin()'是什麼? – emersonthis
這不適用於蛋糕2.7.2 –
擴展AuthComponent
通過@Eisa阿迪爾的建議,是不錯的,但我會建議使用Event。您將添加App::uses('CakeEventManager', 'Event');
和您的擴展登錄方法可以是這樣的:
function login($user = null) {
CakeEventManager::instance()->dispatch(new CakeEvent('Auth.beforeLogin', $this, array('user' => $user)));
$loggedIn = parent::login($user);
CakeEventManager::instance()->dispatch(new CakeEvent('Auth.afterLogin', $this, array('user' => $user)));
return $loggedIn;
}
的,你可以在你的custom event listener定義您的回調,所以你可以有很多聽衆(方便的插件),控制器外,你甚至可以決定在某些情況下停止事件。
我以前遇到過這種情況。它似乎沒有內置的回調。 – XuDing