将URL中的变量传递给Laravel路径

时间:2015-09-06 18:13:23

标签: laravel laravel-4 laravel-routing

我想收到像这样的GET请求:

  

people.php名称=乔&安培;年龄= 24

为此,我定义了以下路线:

Route::get('people.php?name={username}&age={id}', array(
    'as' => 'people/username/age',
    'uses' => 'ExtraController@xfunction',
));

但这似乎不起作用。

如何定义此路线?

2 个答案:

答案 0 :(得分:2)

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

创建常规路由,然后从Input facade:

中提取查询字符串参数
Route::get('people.php', array(
    'as' => 'people/username/age',
    'uses' => 'ExtraController@xfunction',
));
public function xfunction()
{
    $username = Input::get('name');
    $age      = Input::get('age');
}

答案 1 :(得分:0)

约瑟夫上面说的正是如此。但是我想添加一个注释,应该始终在控制器方法中处理所有查询。我相信你知道,但最好的做法显然是不要在路线之外包含任何逻辑。

与Laravel一样,您也可以使用可选变量,而不是查询。

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

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