0

我正在使用 Cake 2.1.3 和 routes.php 文件,除了登录管理之外一切正常,例如我希望我的 url 如下:

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

其中 companyx 是 slug,但是当您在浏览器中运行该 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 回答