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();
}
}