【发布时间】:2016-10-06 20:05:45
【问题描述】:
我正在使用 laravel 5.2 并且在路由方面遇到问题。假设我有这条路线:http://example.com/out/parameter1/parameter2/
Parameter1 应该是必需的,而 Parameter2 应该是可选的。当用户输入此网址: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 指定了一个默认值。
【问题讨论】:
-
检查您的路由器。更改 Route::get('out/{param1}/{param2?}', 'MyController@out']);到 Route::get('out/{param1}/{param2}', 'MyController@out']);
-
@MansoorH,它不起作用,因为我收到 404 错误。此外,
param2应该是可选的。 -
第三个参数的可能值你能定义一下吗
-
改一下,public function out($param1, $param2 = null, Request $request) { }
-
@Uchiha,
param2可以是任何东西。
标签: php laravel routes laravel-5.2 laravel-routing