【发布时间】:2019-03-03 12:59:43
【问题描述】:
我在 Laravel 中有以下路线。我希望能够调用这两个国家以及域“根”上的页面,而不是使用任何目录前缀。
我想要实现的是,当在 eloquent 模型中找不到页面时,它会尝试打开国家/地区,如果失败也显示 404。
这可能吗?我需要改变什么?
Route::get('/{page}', 'PageController@view')->name('pages.view');
Route::get('/{country}', 'CountryController@view')->name('countries.view');
编辑:我想我有点不清楚。
问题是,永远无法到达countries.view 路由,因为它之前使用pages.view 失败。假设我调用/germany - 它首先匹配pages.view 路由,但不存在页面germany。它会立即抛出 404,但我希望它在那之后检查国家,并且只有在 /germany 不作为国家存在时才会失败。
【问题讨论】:
-
我认为您当前定义的路线非常模糊。 Laravel 无法区分 /{page} 和 /{country} 请求。我认为可行的是控制器中的一种方法,您可以在其中解析传递的参数,决定如何处理它,然后重定向到适当的视图