1

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

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

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

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

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

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

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

这里有几点需要注意:

  • 这个 Laravel 安装在一个子文件夹中。
  • 我们正在使用 Laravel 5。

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

4

3 回答 3

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";
});

以确保消息也出现。这是因为如果您有具有相同动词和 url 的注释,它们将被使用,而不是您在此处显示的路线,您可能会转储其他内容。我已经在新的 Laravel 5 安装中检查了它,对我来说它工作正常。在这两种情况下,我都id显示了价值

于 2014-10-16T19:32:19.763 回答
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

于 2015-10-29T09:38:02.553 回答
0

尝试这个:

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

转到 URL/路由('/ArtisanBay'):

希望这会有所帮助。

于 2015-10-29T09:51:40.760 回答