0

ユーザーテーブルがありません。Customer テーブルを取得しました。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 に答える