Laravel选项路由参数不起作用

时间:2016-06-07 04:37:11

标签: php laravel routes laravel-5.2 laravel-routing

我使用laravel 5.2并且在路由方面存在问题。假设我有这条路线:http://example.com/out/parameter1/parameter2/

参数1 应该是必需的,而参数2 应该是可选的。当用户输入此网址:http://example.com/out/parameter1/或此http://example.com/out/parameter1/parameter2/时,他们应该能够继续。输入时,http://example.com/out/将重定向到主页。

这是我的路线:

Route::get('out/{param1}/{param2?}', 'MyController@out']);
Route::get('out/', 'MyController@redirect']);

控制器:

public function out($param1, $param2 = '', Request $request) {
    // logic here
}

我得到的错误是这样的: Argument 3 passed to App\Http\Controllers\MyController::out() must be an instance of Illuminate\Http\Request, none given

我已经在方法上指定了param2的默认值。

1 个答案:

答案 0 :(得分:1)

请求实例必须是第一个

public function out(Request $request, $param1, $param2 = '') 
{
    // logic here
}

文档:方法注入

下的https://laravel.com/docs/5.2/controllers