如何在 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));
}