dpbfb7119
2015-09-30 06:33
浏览 120
已采纳

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

I have a controller method in Laravel 5.1 that takes both GET and POST requests.

There are some variables I have to pass in to that method.

So I'd pass the variable in like this:

http://localhost/<methodName>/<var1 value>/<var2 value>

I'd like Laravel's Request object to be populated with those variables.

Of course I can do:

http://localhost/<MethodName>?var1=var1_value&var2=var2_value

But I'd like to keep the pretty url mentioned before and still be able to populate Request object.

public function methodName(Request $request)
{
    dd($request);
}

This return an empty array.

Yes, I can do something like:

public function methodName(Request $request, $var1= "", $var2 = "")
{
    dd($var1." ".$var2);
}

This will return the variables but I'd really like to have the Request object populated if possible.

The route I'm using is:

 Route::match(['get', 'post'],
 '/<method-name>/{<var1_value>?}/{<var2_value>?}/{<var3_value>?}',
 '<ControllerName>@<methodName>');

Post variables are not a problem.

图片转代码服务由CSDN问答提供 功能建议

我在Laravel 5.1中有一个控制器方法,它接受GET和POST请求。

我必须将一些变量传递给该方法。

所以我会像这样传递变量:

 < 代码> http:// localhost /&lt; methodName&gt; /&lt; var1 value&gt; /&lt; var2 value&gt; 
   
 
 

我想要Laravel的Request对象是 填充了这些变量。

我当然可以这样做:

  http:// localhost /&lt; MethodName&gt;?var1 = var1_value&amp;  ; 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'],
'/&lt; method-name&gt; / {&lt; var1_value&gt;?} / {&lt; var2_value&gt;?} / {&lt; var3_value&gt;?}  ',
'&lt; ControllerName&gt; @&lt; methodName&gt;'); 
   
 
 

发布变量不是问题。

  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • doukao5073 2015-09-30 07:09
    已采纳

    In your controller, use route() function on $request object.

    $request->route('var1');
    

    Of course the name of parameter must match what you define in your routes.php

    Route::get('your/route/{var1}/{var2}','YourController@method');
    
    打赏 评论

相关推荐 更多相似问题