Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 身份验证拒绝登录自定义路由_Php_Cakephp 3.0 - Fatal编程技术网

Php 身份验证拒绝登录自定义路由

Php 身份验证拒绝登录自定义路由,php,cakephp-3.0,Php,Cakephp 3.0,所以当我尝试访问http://example.com/club-name/login,我被重定向到http://example.com/users/login使用flash消息您必须登录才能访问此区域 身份验证login操作是[controller=>'Users','action'=>'login'],由于我在问题开头提到的自定义路由指向在loginAction中指定的路径,我想该路由会知道我在谈论相同的事情,但不是正在发生的事情。动态路由元素不会自动添加/识别,您必须使用persist选项(

所以当我尝试访问
http://example.com/club-name/login
,我被重定向到
http://example.com/users/login
使用flash消息
您必须登录才能访问此区域


身份验证
login操作
[controller=>'Users','action'=>'login']
,由于我在问题开头提到的自定义路由指向在
loginAction
中指定的路径,我想该路由会知道我在谈论相同的事情,但不是正在发生的事情。

动态路由元素不会自动添加/识别,您必须使用
persist
选项(仅适用于该特定路线)将它们持久化:

或URL筛选器(影响使用
club\u slug
元素的所有路由):

或者,您必须手动将元素传递给登录操作(这将与
club_slug
路线匹配,而不管当前URL如何):

另见


第一个问题,
User
在这个代码示例中只是一个错误,还是登录操作在您的路径中确实使用了单数而不是复数名称?只是一个错误,我将编辑问题在我的情况下,第二个更好
Router::scope('/:club_slug', function ($routes) {
    $routes->connect('/login', ['controller' => 'Users', 'action' => 'login']);
});
Router::scope('/:club_slug', function ($routes) {
    $routes->connect(
        '/login',
        ['controller' => 'Users', 'action' => 'login'],
        ['persist' => ['club_slug']]
    );
});
Router::addUrlFilter(function ($params, $request) {
    if (isset($request->params['club_slug']) && !isset($params['club_slug'])) {
        $params['club_slug'] = $request->params['club_slug'];
    }
    return $params;
});
'loginAction' => [
    'controller' => 'Users',
    'action' => 'login',
    'club_slug' => 'club-slug' // wherever it may have come from
]