我的laravel路线文件中有以下路线:
Route::get('/{id}' , [
'uses' => 'PagesController@show',
'as' => 'getArticle'
]);
上述路线的问题是,它覆盖了以下路线:
Route::resource('admin', 'adminController');
我想保留我的资源路线,但我如何保留我的资源?有没有办法解决这个问题?
答案 0 :(得分:3)
像这样修改您的路线文件。
Route::resource('admin', 'adminController');
Route::get('/{id}' , [ 'uses' => 'PagesController@show', 'as' => 'getArticle' ]);
按照定义的顺序路由文件。
如果您在开头定义Route::get('/{id}',....
并将您的网址设置为http://your-site/admin
,那么admin
部分将被视为id
路由的Route::get('/{id}',....
。因此,在定义路线时,您需要牢记这一点。
答案 1 :(得分:1)
只需在web.php文件的末尾移动此路由。
Route::get('/{id}' , [
'uses' => 'PagesController@show',
'as' => 'getArticle'
]);
答案 2 :(得分:1)
有两种选择:
Route::get('/{id}', ...)
Route::resource(...)
如果Route::get()
为数字id
,则Route::get('/{id}', ...)->where('id', '[0-9]+');
添加模式