php - 当两个不同的路由组内有相同的路由时,如何管理 Blade 中的路由?
问题描述
我在两个不同的路由组中创建了两个资源控制器。一位用户 一位管理员
Route::group([
'prefix' => 'dashboard',
"middleware" => 'auth',
"namespace" => 'User'
], function (){
Route::resource('projects', 'ProjectController');
})
Route::group([
'prefix' => 'admin',
"middleware" => 'auth',
"namespace" => 'Admin'
], function (){
Route::resource('projects', 'ProjectController');
})
我正在使用“路线”关键字来分配路线。我这样做是因为我想为两者使用相同的视图文件。
这是刀片文件
<form action='{{route('projects.update', $project)}}' method="POST">
@method('PUT')
@csrf
....
</form>
当我在/admin/projects中时,它按预期使用admin.projects 资源路由,但是当我在/dashboard/projects时,它应该使用仪表板资源路由,但它正在使用admin.projects.update 路由。
而且当我从 web.php 评论/删除管理项目路由时,它工作正常。
让我知道为什么会这样。什么是最好的解决方案。
解决方案
运行此命令php artisan route:list
,您将在两者中找到相同的别名,因此您必须使别名唯一。
为此,
Route::group([
'prefix' => 'dashboard',
'as' => 'dashboard.',
"middleware" => 'auth',
"namespace" => 'User'
], function (){
Route::resource('projects', 'ProjectController');
});
Route::group([
'prefix' => 'admin',
'as' => 'admin.',
"middleware" => 'auth',
"namespace" => 'Admin'
], function (){
Route::resource('projects', 'ProjectController');
});
因此,您需要将其用作admin.projects.index
和dashboard.projects.index
推荐阅读
- javascript - Spring Boot - 我将如何实现 Web 套接字来制作一个简单的聊天系统?
- reactjs - 为什么在 Redux 动作触发后 react 不会设置状态?
- bundler - 包裹 V2 中的示波器吊装/摇树
- c++ - 如何将 boost::unordered_set 与自定义类一起使用?
- r - 如何降低 R 中热图的分辨率?
- android - 如何返回到以前的 navGraph?
- python-3.x - 寻找 Python 脚本的实时相对强弱指数 (RSI) 指标函数
- anylogic - 如何将静态代理群体与行人模型一起使用?
- python - 在 Pandas 中添加几乎重复的内容并删除旧的重复项
- button - 我可以用线连接2个按钮吗?