2015-09-06 100 views
1

传递变量我想收到这样的GET请求:在URL中的Laravel路由

people.php名=乔&年龄= 24

对于这一点,我有定义了以下路线:

Route::get('people.php?name={username}&age={id}', array(
    'as' => 'people/username/age', 
    'uses' => '[email protected]', 
)); 

但是这似乎不起作用。

如何定义此路线?

+0

你可以做example.com/{name}/{age}在你的路线,如果这是你想要的吗?所以,你将有一个url,像domain.com/Joe/24 – Robin

+0

我们想要一个Ajax的调用,而且看起来Ajax GET以这种方式工作。 – horse

回答

2

Laravel不支持查询字符串路由。

创建一个常规的路线,然后从Input门面拉查询字符串参数:

Route::get('people.php', array(
    'as' => 'people/username/age', 
    'uses' => '[email protected]', 
)); 
public function xfunction() 
{ 
    $username = Input::get('name'); 
    $age  = Input::get('age'); 
} 
+0

好吧,这个作品:) – horse

0

究竟是什么约瑟夫上面说的。但我想添加一个注意事项,即所有查询都应该始终在控制器方法中处理。我相信你知道,但最好的做法显然是永远不要在路线之外包含任何逻辑。

与Laravel一样,您也可以使用可选变量来代替查询。

因此,而不是/ test /?name = Jonathan,您可以使用/ test/{name?}然后您可以将其视为/ test /或/ test/Jonathan,但在控制器方法中,您必须使用

public function ($name = null;) { dd($name); }

+0

我用/ test/{names?} laravel的方法。但是我需要这种查询方式来实现ajax .get函数。 – horse

+0

您仍然可以动态更改AJAX get的URL,以便您拥有根URL,然后只需使用'query'或其他东西并在'var query ='something';'之前。但在一天结束时,这并不重要。 – Jonathan

+0

我明白了。我不知道这是可能的。 – horse