如何在 Laravel 路由中设置动态前缀
How do I set dynamic prefixes in Laravel routes
情况是这样的 - 我正在构建一个基于区域的站点,我需要对其进行设置,以便路线的第一段是一个区域,即类型:
www.mysite.com/{region}
目前我的路由设置如下:
www.mysite.com/businesses
www.mysite.com/businesses/show
我已经尝试了很多技巧,但出于某种原因我无法让它工作:
www.mysite.com/{region}/businesses
这样我需要按 {region} 变量进行过滤并且 {region} 变量必须在站点中的每个 url 之前添加,而且 {region} 变量也应该可以访问在控制器中。我查看了本地化选项,但我不想在这里更改语言。我正在寻找实现以下内容的方法:
www.mysite.com/barcelona/businesses
www.mysite.com/new-york/businesses
我已经 table 所有区域和 slug 以及所需的关系。只是想让它发挥作用。
在所有其他路线之上添加区域路线,我有一个项目的类似功能并且为我修复了它。
Route::get('{region?}/businesses', array(
'as' => 'regionBusinesses',
'uses' => 'RegionBusinessesController@getBusinesses'
))->where('region', '.*');
在您的控制器中
class RegionBusinessesController extends SomeController {
public function getBusinesses($region) {
return View::make('YOUR_VIEW_NAME')->withBusinesses($this->YOUR_MODEL->FETCH_BUSINESSES_METHOD($region));
}
情况是这样的 - 我正在构建一个基于区域的站点,我需要对其进行设置,以便路线的第一段是一个区域,即类型:
www.mysite.com/{region}
目前我的路由设置如下:
www.mysite.com/businesses
www.mysite.com/businesses/show
我已经尝试了很多技巧,但出于某种原因我无法让它工作:
www.mysite.com/{region}/businesses
这样我需要按 {region} 变量进行过滤并且 {region} 变量必须在站点中的每个 url 之前添加,而且 {region} 变量也应该可以访问在控制器中。我查看了本地化选项,但我不想在这里更改语言。我正在寻找实现以下内容的方法:
www.mysite.com/barcelona/businesses
www.mysite.com/new-york/businesses
我已经 table 所有区域和 slug 以及所需的关系。只是想让它发挥作用。
在所有其他路线之上添加区域路线,我有一个项目的类似功能并且为我修复了它。
Route::get('{region?}/businesses', array(
'as' => 'regionBusinesses',
'uses' => 'RegionBusinessesController@getBusinesses'
))->where('region', '.*');
在您的控制器中
class RegionBusinessesController extends SomeController {
public function getBusinesses($region) {
return View::make('YOUR_VIEW_NAME')->withBusinesses($this->YOUR_MODEL->FETCH_BUSINESSES_METHOD($region));
}