我在Laravel 5.1中有一个控制器方法,它同时接受GET和POST请求。
有一些变量我必须传递给那个方法。
那么我就像这样传递变量:
http://localhost/<methodName>/<var1 value>/<var2 value>
我想让Laravel的Request对象填充这些变量。
当然可以:
http://localhost/<MethodName>?var1=var1_value&var2=var2_value
但是我想保留前面提到的漂亮的url,并且仍然能够填充请求对象。
public function methodName(Request $request)
{
dd($request);
}
返回一个空数组。
是的,我可以这样做:
public function methodName(Request $request, $var1= "", $var2 = "")
{
dd($var1." ".$var2);
}
这将返回变量,但如果可能的话,我真的希望有Request对象填充。
我使用的路由是:
Route::match(['get', 'post'],
'/<method-name>/{<var1_value>?}/{<var2_value>?}/{<var3_value>?}',
'<ControllerName>@<methodName>');
Post变量不是问题
在你的控制器中,使用route()函数对$request对象。
$request->route('var1');
当然,参数名必须与你在routes.php中定义的一致
Route::get('your/route/{var1}/{var2}','YourController@method');