0

我没有用户表。我有一张客户表。似乎 Cakephp Auth 无法识别除 User 之外的任何其他表。有没有办法绕过这个错误?

如果我尝试使用$this->Auth->User('role')- 它工作得很好。但是我所有的身份验证凭据都在 Customer 表下。请帮忙。

我在下面收到此错误

Fatal error: Call to undefined method AuthComponent::Customer() in
/Applications/MAMP/htdocs/development03/app/app_controller.php on line 56

编码:

function beforeFilter() {
    $this->set('admin', $this->_isAdmin());
}

function _isAdmin() {
    $admin = FALSE;
    if ($this->Auth->Customer('role') == 'admin') {
        $admin = TRUE;
    }
    return $admin;  
}
4

2 回答 2

2

假设您想要管理员表,其中用户名是字段电子邮件密码是字段密码

在您的 AppController.php 中:

public $components = array('Session',
        'Auth' => array('authenticate' => array('Form' => array( 'userModel' => 'Administrator',
                                                         'fields' => array(
                                                                              'username' => 'email',
                                                                              'password' => 'password'
                                                                              )
                                                            )
                                            ),
                'authorize' => array('Controller'),
                'loginAction' => array('controller' => 'administrators', 'action' => 'login'),
                'loginRedirect' => array('controller' => 'Home', 'action' => 'index'),
                'logoutRedirect' => array('controller' => 'Home', 'action' => 'index'),
          ),             
    );

在 AppController.php 中也添加这个:

public function isAuthorized($user){
    return true;
}
于 2012-07-24T10:32:55.270 回答
0

你将不得不使用userModel => ModelName财产。您的 AppController 应如下所示:

class AppController extends Controller
{    
    public $components = array(
        'Auth' => array('authenticate' => array('Form' => array('userModel' =>'Customer', 
                                                                'fields' => array('username' => 'USER_LOGINNAME', 'password' => 'USER_PASSWORD'
                                                                             )
                                                            )
                                            )
                    )
);
 /*...... Your code ............*/
}

此链接可能会帮助您解决错误。

于 2012-07-24T06:56:24.700 回答