我不确定最好的方法,但基本上我有一些路线设置和一些供应商的路线,但我的那种"赶上所有"当我需要供应商" / forum"要使用的。
以下是我的路线:
Route::get('/', function () { return view('welcome'); });
Route::get('/contact', function () { return view('contact'); });
Route::get('/login', function () { return view('login'); });
Route::get('/signup', 'UserController@create');
Route::get('/logout', 'UserController@logout');
Route::get('/{slug}', 'PageController@show');
您可以看到最后一条路线基本上只是获取了slug然后在控制器中我通过slug返回页面。问题在于/ PageController@show
被调用,因为我假设Laravel在供应商之前查看此路由文件。是否有更好的设置方式,因此Route::get('/{slug}', 'PageController@show');
被称为供应商路线后的最后一个可能选项?
答案 0 :(得分:0)
Laravel路由按照定义的顺序加载,因此在/forum
之前让/{slug}
匹配的唯一方法是确保首先加载路由。为了保证最后加载,我会建议在app/Providers/RouteServiceProvider.php
中加载所有其他路由后添加它,如下所示:
public function map()
{
$this->mapApiRoutes();
$this->mapWebRoutes();
Route::get('/{slug}', 'App\Http\Controllers\PageController@show');
}