Routing 特定控制器上的Cakephp3前缀路由

Routing 特定控制器上的Cakephp3前缀路由,routing,cakephp-3.0,Routing,Cakephp 3.0,我正在尝试设置前缀路由,但只在某些控制器上设置前缀路由,在这些控制器上,我需要一个单独的管理版本,但我似乎只能使其在所有或任何情况下工作 $routes->prefix('admin', function ($routes) { $routes->connect('/:controller/:action/*', [], ['routeClass' => 'Cake\Routing\Route\InflectedRoute']); }); 上面在每个控制器上创建了一个

我正在尝试设置前缀路由,但只在某些控制器上设置前缀路由,在这些控制器上,我需要一个单独的管理版本,但我似乎只能使其在所有或任何情况下工作

$routes->prefix('admin', function ($routes) {
    $routes->connect('/:controller/:action/*', [], ['routeClass' => 'Cake\Routing\Route\InflectedRoute']);
});
上面在每个控制器上创建了一个admin前缀,这样当我在/admin/中时,到使用HTML帮助程序创建的任何控制器的所有链接都会添加admin前缀,甚至当我被重定向到登录时,它也会以/admin/为前缀。我需要创建每个控制器的管理版本,或者在每个链接上指定前缀=>false

我以为会是这样的:

$routes->prefix('admin', function ($routes) {
    $routes->connect('/projects/:action/*', ['controller' => 'Projects'], ['routeClass' => 'Cake\Routing\Route\InflectedRoute']);
});
但是使用此代码访问/admin/projects中的页面时,我会得到错误:错误:找不到与数组“controller”=>“Users”、“action”=>“login”、“prefix”=>“admin”、“plugin”=>NULL、“ext”=>NULL匹配的路由。 就好像它试图将我重定向到登录,即使我将代码还原回页面加载时我还没有注销


提前感谢您的帮助。

通过与同事交谈,我发现我对前缀路由的工作原理有点误解。将某些控制器/路由连接到前缀是错误的概念。所有控制器都可以使用前缀访问,我只需要使用我的应用程序中的链接来确保用户进入适当的位置-即如果我想保留“admin”前缀,请指定“prefix”=>“false”

如果未指定,蛋糕将自动将当前前缀合并到所有链接中

关于被定向到登录页面的管理员版本。我刚刚创建了一个管理员登录方法,可以重定向到非管理员版本