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

How to avoid overwriting routes in Laravel?

提前抱歉,我知道之前有人问过,但我没有想出解决方案。

我是 Laravel 的新手,仍在学习并遇到这个问题:

我的objective是在后台添加页面,然后在前端显示这些页面。

对于网站的前面部分,我有这条路线:

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

对于网站的管理部分,我有这条路线:

Route::get('/admin', 'AdminController@show');

我的问题是第一条路线覆盖了第二条路线,我不知道如何避免这种情况。

我试过namespaces and grouping routes,但我得到了同样的结果。

谢谢

为了简单起见,发生这种情况是因为您在管理路由之前有带有参数的路由,因此将发送 "admin as a parameter of page"

简单的修复方法是将管理路由放在您的 "/{page} 之前,这样它会首先找到管理路由,像这样:

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

但我不建议以这种方式构建路由,并尽可能设置特定的页面,这种构建路由的方式也会混淆 404 路由未找到。