Laravel - 无法获取url GET参数

时间:2014-10-16 17:35:44

标签: php laravel laravel-routing laravel-5

我在尝试向路由发出GET请求并处理通过URL传入的参数时遇到问题。以下是我在routes.php中创建的两条路线:

$router->get('/', function() {
    $test = \Input::get('id');
    dd($test);
});

$router->get('test', function() {
    $test = \Input::get('id');
    dd($test);
});

当我转到第一个网址/路线(' /')并传入一些数据时,123会打印到屏幕上:

http://domain.com/dev/?id=123

当我转到第二个('测试')时,NULL打印到屏幕上(我在routes.php文件中尝试过' / test' )。

http://domain.com/dev/test?id=123

这里需要注意的一些事项:

  • Laravel的这个安装位于子文件夹中。
  • 我们正在使用Laravel 5.

知道为什么一个会工作而另一个不会?

3 个答案:

答案 0 :(得分:2)

首先 - Laravel 5仍在积极开发中,所以此刻你不能过分依赖它。

第二件事是缓存和路由。您确定要运行此路由的代码吗?

将此代码更改为:

$router->get('/', function() {

   $test = \Input::get('id');
   var_dump($test);
   echo "/ route";

});

$router->get('test', function() {
   $test = \Input::get('id');
   var_dump($test);
   echo "test route";
});

确保消息也出现。这是因为如果你有使用相同动词和网址的注释,他们将被使用,而不是你在这里显示的路线,你可以转储别的东西。我已经在新的Laravel 5安装中检查了它,对我来说它工作正常。在这两种情况下,我都显示id

答案 1 :(得分:0)

您可以使用

Request::path()

检索请求URI,或者您可以使用

Request::url()

获取当前的请求URL。您可以在此处查看Laravel 5文档中的详细信息:http://laravel.com/docs/5.0/requests#other-request-information,当您执行这些过程时,您可以获取GET参数并使用此函数:

function getRequestGET($url){
  $parts = parse_url($url);
  parse_str($parts['query'], $query);
  return $query;
}

对于这个功能感谢@ruel的回答:https://stackoverflow.com/a/11480852/2246294

答案 2 :(得分:0)

试试这个:

Route::get('/{urlParameter}', function($urlParameter)
{
    echo $urlParameter; 
});

转到网址/路线('/ ArtisanBay'):

希望这有用。