我在Laravel 5.1中有一个控制器方法,它接受GET和POST请求。
我必须将一些变量传递给该方法。
所以我按这样传递变量:
http://localhost/<methodName>/<var1 value>/<var2 value>
我希望Laravel的Request对象填充这些变量。
我当然能做到:
http://localhost/<MethodName>?var1=var1_value&var2=var2_value
但是我想保留前面提到的漂亮网址,并且仍然可以填充Request对象。
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>');
发布变量不是问题。
答案 0 :(得分:3)
在你的控制器中,在$ request对象上使用route()函数。
$request->route('var1');
当然,参数名称必须与您在routes.php
中定义的名称相匹配Route::get('your/route/{var1}/{var2}','YourController@method');