Laravel 5.1从URL获取变量到Request对象


Laravel 5.1 get variable from pretty URL to Request object

我在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');