我在尝试向路由发出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
这里需要注意的一些事项:
知道为什么一个会工作而另一个不会?
答案 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'):
希望这有用。