5
我正在cakephp開發一個網站。 我想給設施登錄使用用戶名或emailid。如何使用用戶名或電子郵件ID登錄
我正在使用。 $ this-> Auth-> fields ['email'] ='username';
當登錄失敗並嘗試再次登錄時。 但直到現在我還沒有成功。
任何人都可以建議我任何其他想法或我失蹤。 我也推薦autorediret。
我正在cakephp開發一個網站。 我想給設施登錄使用用戶名或emailid。如何使用用戶名或電子郵件ID登錄
我正在使用。 $ this-> Auth-> fields ['email'] ='username';
當登錄失敗並嘗試再次登錄時。 但直到現在我還沒有成功。
任何人都可以建議我任何其他想法或我失蹤。 我也推薦autorediret。
既然你可以在beforeFilter
回調設立AuthComponent
,我認爲你應該也能夠做一些切換有:
function beforeFilter() {
if (
isset($this->data['User']['login']) && // login form has been posted
Validation::email($this->data['User']['login']) // value looks like an email
) {
$this->Auth->fields = array('username' => 'email'); // change the db field
}
}
如果這不起作用,你可能需要嘗試的之前的過濾器,例如beforeRender
,因爲您需要在AuthComponent::startup()
之前觸發您的代碼。作爲最後的手段,您可以extend the AuthComponent:
App::import('Component', 'AuthComponent');
class AppAuthComponent extends AuthComponent {
function startup() {
# your code here
parent::startup();
}
}