2015-09-06 143 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