3

私のサイトには、従業員用の公開セクションと管理者用のバックエンドがあります。Employee と Admin の 2 つの異なるモデルを使用します。

従業員のログインと管理者のログインに Auth コンポーネントを使用したいと考えています。デフォルトの User モデル以外のモデルを使用するように Auth コンポーネントをセットアップする方法を知っています。しかし、認証コンポーネントで従業員認証用と管理者認証用の 2 つのモデルを使用することはできますか? admin_ プレフィックス ルーティングを使用しています。

これは可能ですか?検索しましたが、Auth コンポーネントで User モデル以外のモデルを使用する方法に関するチュートリアルしか見つかりませんでした。

お知らせ下さい!

編集

管理者ログインと従業員ログインに別々のログインフォームを使用しています。どちらも従業員コントローラーを使用しますが、別々のアクションを使用します。

4

2 に答える 2

0

http://api.cakephp.org/class/auth-component

プロパティの認証を確認してください。答えはそこにあります。

その他: http://book.cakephp.org/2.0/en/core-libraries/components/authentication.html . 認証ハンドラーを見てください!

これはケーキページから直接の例です

<?php
// Basic setup
$this->Auth->authenticate = array('Form');

// Pass settings in
$this->Auth->authenticate = array(
'Form' => array('userModel' => 'Member'),
'Basic' => array('userModel' => 'Member')
);

Form と Basic の代わりに別のものを入れて、適切なモデルを関連付けるだけです

于 2012-08-06T19:37:07.033 に答える
0

Employee と Admin に 2 つのラジオ ボタンを使用しているとします。次に、ログイン メソッドで次のコードを使用できます。

 function login()
{       
    if ($this->request->is('post'))
    {
        $logged_in = false;
        $login_type = $this->request->data['User']['login_type']
        if ($login_type == 'Admin')
        {
             $this->Auth->authenticate = array('Form' => array('userModel' => 'Admin' ));       
        }
        else //if ($login_type == 'Employee')
        {
             $this->Auth->authenticate = array('Form' => array('userModel' => 'Employee' ));             
        }
        $this->Auth->constructAuthenticate();
        if ($this->Auth->login())
        {  
             $logged_in = true;                 
                     /*.... Do what you want............*/
        }
    }
}
于 2012-08-07T05:18:04.603 に答える