0

Cake 2.1.3とroutes.phpファイルを使用していますが、ログイン管理以外はすべて正常に機能しました。たとえば、URLを次のようにします。

http://mysite.com/companyx/users/login

ここで、companyxはスラッグですが、ブラウザでそのURLを実行すると、次のようになります。

http://mysite.com/users/login

このファイルroutes.phpで、私は次のように定義しました。

Router::connect(
        '/:slug/users/login', // E.g. /companyx/users/login
        array('controller' => 'users', 'action' => 'login'), array(
        // order matters
        'pass' => array('slug')
        )
    );

他のコントローラーでは、次のような問題はありません。

Router::connect(
        '/:slug/users', // E.g. /companyx/users 
        array('controller' => 'users', 'action' => 'index'), array(
        // order matters
        'pass' => array('slug')
        )
    );

よろしくお願いします ;)

4

2 に答える 2

0

CakePHPには、AuthComponentで定義されたデフォルトのログインアクションがあります。(171行目)

 /**
  * A URL (defined as a string or array) to the controller action that handles
  * logins.  Defaults to `/users/login`
  *
  * @var mixed
  */
public $loginAction = array(
    'controller' => 'users',
    'action' => 'login',
    'plugin' => null
);

このアクションは、独自のUsersControllerのbeforeFilterでオーバーライドできます。

于 2012-07-09T11:44:42.377 に答える
0

答えてくれてありがとう。私はこのケースを次のように解決しました:

public function beforeFilter() {
    parent::beforeFilter();
     if (!$this->request->is('post')) {
        $this->Auth->loginAction = 'this is:slug/users/login/';
     }
}

「これはナメクジです」は、ナメクジでなければなりません。

よろしくお願いします。

于 2012-07-09T15:50:46.397 に答える