如何避免覆盖Laravel中的路由?

如何避免覆盖Laravel中的路由?,laravel,routes,laravel-6,Laravel,Routes,Laravel 6,事先很抱歉,我知道以前有人问过,但我没有找到解决办法 我是拉雷维尔的新手,仍在学习并坚持这个问题: 我的目标是在管理中添加页面,并在前端显示这些页面 对于网站的前部,我有以下路线: Route::get('/{page}', 'PagesController@show'); Route::get('/admin', 'AdminController@show'); 因此,当您访问/about、/contact、/另一个页面时,我使用相同的视图 对于网站的管理部分,我有以下路线: Rout

事先很抱歉,我知道以前有人问过,但我没有找到解决办法

我是拉雷维尔的新手,仍在学习并坚持这个问题:

我的目标是在管理中添加页面,并在前端显示这些页面

对于网站的前部,我有以下路线:

Route::get('/{page}', 'PagesController@show');
Route::get('/admin', 'AdminController@show');
  • 因此,当您访问/about、/contact、/另一个页面时,我使用相同的视图
对于网站的管理部分,我有以下路线:

Route::get('/{page}', 'PagesController@show');
Route::get('/admin', 'AdminController@show');
我的问题是第一条路线覆盖了第二条路线,我不知道如何避免这种情况

我试过了,但我得到了同样的结果


感谢您

让事情变得简单,这是因为您的路由在admin路由之前带有参数,因此将发送“admin as a parameter of page”

简单的修复方法是将admin route放在“/{page}之前,这样它会首先找到admin route,如下所示:

Route::get('/admin', 'AdminController@show');
Route::get('/{page}', 'PagesController@show');

但我不建议用这种方式构建路由,如果可能的话,请设置“详细信息”页面,这种构建路由的方式也会与找不到的404路由混淆。

在路由文件中切换它们的顺序。我不记得第一个路由是否会覆盖第二个路由或其他路由,但是交换它,它应该会起作用。给出您的route一个名字,它会给你一个错误当相同的名字写更多关于相同的@ceejayoz我会给它一个try@ceejayoz我刚刚做了一个新的安装和交换路线的订单,它的工作。谢谢我建议阅读有关laravel路线和学习名称等正确做事情。嗨@TheLacrox,我已经尝试了名称,但它没有ork(得到了相同的结果)。我必须重新安装并重新开始,因为我的所有测试都无法继续工作。我将尝试您的方法并再次返回。是否有关于创建自定义CMS时如何组织路由的指南?