我正在尝试在 larvel 中重现 codeigniter 类型的路线。例如路由'about/directions'
会加载 about 控制器和方向方法,而路由'about/directions/fastest'
会调用带有参数的方法'fastest'
。
到目前为止,我最接近的是使用Route::group
以下方式:
Route::group( ['prefix'=>'about'], function()
{
Route::get( 'directions/{optional?}', 'about@directions' );
});
这可行,但仍然需要我在每个控制器上手动插入每条可能的路线。我也试过这个Route::controller()
方法。这似乎更接近,但需要我在方法名称前加上“get”或“post”,而且似乎没有一种方法可以响应所有 HTTP 动词。
那么是否可以使用Route::controller
一种方法来响应所有动词?或者是否有另一种解决方案可以使路由以这种方式工作?
[编辑]
经过一些额外的探索后,我发现我可以使用 和 的组合,Route::controller
如下missingMethod()
所示:
public function missingMethod( $params )
{
call_user_func_array( [$this, array_shift($params)], $params );
}
但我仍然想知道是否有一种方法可以做到这一点。