我在CakePHP 4中为我的Web应用程序创建了一个前缀Admin部分。在config/routes.php中,我将Auth插件的范围设置为这样(因此只有/admin/* 需要登录:
$routes->prefix('Admin', function (RouteBuilder $routes) {
$routes->registerMiddleware(
'auth',
new \Authentication\Middleware\AuthenticationMiddleware($this)
);
$routes->applyMiddleware('auth');
// etc.
因为我想为面板创建一个简单的登录页面(例如localhost/admin),所以我在/Admin/文件夹中创建了一个AdminController.php,并且我尝试将'/admin'
连接到这个控制器,这样URL就不会是一个笨拙的localhost/admin/admin
-但是我收到了一个Auth错误。
$routes->connect(
'/admin',
['prefix' => 'Admin', 'controller' => 'Admin', 'action' => 'index']
);
这将产生以下错误:* 请求对象不包含所需的身份验证属性 *
我试图通过再次确定中间件的范围来改善这一点
$routes->scope('/admin', function(RouteBuilder $routes)
{
$routes->registerMiddleware(
'auth',
new \Authentication\Middleware\AuthenticationMiddleware($this)
);
$routes->applyMiddleware('auth');
});
但这不起作用,它给出了相同的错误。
1条答案
按热度按时间new9mtju1#
不要在前缀之外创建额外的路由,您可以使用
/
作为路径,将路由连接到当前前缀/作用域路径:另请参阅
*操作手册〉路由〉前缀路由
*手册〉路线〉快速游览