2017-10-04 191 views
0

有没有一种方法可以将参数传递到不带通配符的路由。
例如访问查询字符串数据,我们需要通配符添加到路由将参数传递给函数

Route::post('reg/{param}','[email protected]'); 

但我不想使用通配符或查询字符串。我想将数据传递给函数作为参数传递

+0

内使用POST路线 – aaron0207

+0

这是一个错字BTW它后,我已经清楚地提到我不不想使用通配符来访问函数中的数据我想将数据作为参数传递给路由函数 – user1994

回答

0

如果我正确理解你的问题:在您的控制器所有你所要做的就是写你func方法如下:

public function func($param) {} 

Laravel会自动把什么是在{param}$param。所以如果你发布到你的服务器http://server/reg/foo,那么$param会得到值“foo”。它不在变量的顺序中,而是变量的名称。因此,如果您命名变量{fooX}它将被传递给名为$fooX的控制器方法。

你可以把多个变量,像这样:

Route::post('reg/{paramX}/{paramY}','[email protected]'); 

,并定义方法

public function func($paramX, $paramY) {} 
+0

正如我明确提到的,我不想使用通配符技术。 – user1994

+0

我不知道你叫他们通配符。该手册称其为路由参数https://laravel.com/docs/5.5/routing#route-parameters。在这种情况下,您唯一的选择就是将您的输入放入请求正文中 - 以x-www-form-urlencoded格式或json格式。然后从'Request'参数中获取传递的值 –

0

不,那是Laravel路由器是如何工作的。但是你仍然可以从请求中访问它们。就像您可能在“过去的日子”中完成的那样,从全局变量$_GET$_POST

只要定义您的路线不带通配符,像这样:

Route::post('reg','[email protected]'); 

和函数使用$request->query('param_name');