【发布时间】:2017-07-06 08:43:42
【问题描述】:
我有这条路线:
Route::get('{country}/{federalstate?}/{city?}', ['as' => 'regions.show', 'uses' => 'RegionsController@show']);
接下来我有一个模型国家,其中包含几个国家。
我希望这条路线仅在模型 Country 中存在给定 {country} 时才生效。我想这样做,因为不想为该路由使用前缀。
丑陋的方式是正则表达式。丑陋,因为每次向模型中添加新国家/地区时都必须更新它。
那么完成我想做的事情的最佳方法是什么?
也许这会有所帮助 -> https://laravel.com/docs/5.4/routing#route-model-binding - 但我是初学者,无法使用它。
编辑:
这可能有效:
Route::get('{country?}/{federalstate?}/{city?}', ['as' => 'regions.show', 'uses' => 'RegionsController@show'])->where([
'country' => 'germany|usa|canada'
]);
但是,正如我所说,每次向数据库添加新国家/地区时,我都必须更改正则表达式。
【问题讨论】:
标签: php laravel laravel-5 routes