1

管理パネルの管理ルーティングを行いました。現在、URL はlocalhost/app/adminです。

これで、管理者とユーザーの 2 つのテーブルができました。

ログインlocalhost/app/admin/admins/loginの URL を作成しました。

ユーザー名とパスワードの入力を求めるページが表示されます。

しかし、問題は、appcontroller で loginredirect を使用してコンポーネントを作成すると、localhost/app/admin/users/loginにリダイレクトされることです。理由はわかりません。loginredirect パスを変更しようとしましたが、何も機能しませんでした。

これは私の appcontroller.php です:

public $components = array(
    'Session',
    'Auth' => array(
        'loginRedirect' => array('controller' => 'admins', 'action' => 'add'),
        'logoutRedirect' => array('controller' => 'pages', 'action' => 'display', 'home')
    )
);

public function beforeFilter() {
    $this->Auth->allow('index', 'view');
}

ユーザーテーブルを削除しても、ユーザーのログインにリダイレクトされます。

4

1 に答える 1

0

Auth コンポーネントが機能していないようです。コンポーネント変数に認証リダイレクトを追加する代わりに、それらを beforeFilter() に入れます。appController は次のようになります。

    public $components = array('Auth','Session');

    public function beforeFilter()
{
    $this->Auth->loginRedirect = array('action' => 'add', 'controller' => 'admins');
    $this->Auth->logoutRedirect = array('controller' => 'pages', 'action' => 'display', 'home');
    $this->Auth->authError = 'You are not allowed to see that.';

}

正常にログインしていますか? その場合は、routes.php をチェックして、正しくルーティングされていることを確認してください。これは、example.com/admins/add に手動で移動することでテストできます。

于 2013-03-28T00:55:06.897 に答える