【发布时间】:2018-01-11 09:42:35
【问题描述】:
我在 routes.php 中定义了一个类似于:
Route::get('something/{firstId}/{secondId}/{thirdId}/{nthId}', 'SomeController@read')->name('read');
在我的控制器中,我的设置是这样的,效果很好:
public function read($firstId, $secondId, $thirdId, $nthId, Request $request){
...
}
对于特定方法,我不需要 $firstId、$secondId 等。我只需要$nthId。是否可以设置我的控制器,以便我可以获取第 n 个参数并简化我的代码?例如:
public function read($nthId, Request $request){
...
}
【问题讨论】:
-
路由中必须加上id,如果使用数组输入字段会更容易。
-
在方法中省略参数将是一个糟糕的设计。如果另一个开发人员正在研究它会怎样。他们怎么会知道这些?在开发代码时问问自己。
-
@Ohgodwhy 这是一个非常好的观点,但通常在使用控制器时,我假设未来的开发人员也会查看路由定义。无论如何,这就是我所希望的。拥有一个不需要几个参数的控制器对我来说似乎很奇怪,但现在我正在考虑重构路由。本质上,我的路线真的需要那么深吗?
标签: laravel laravel-5.2 laravel-routing