使用Laravel 5,我无法设置获取路由参数。
我的路线设置如下:
Route::get('test', 'TestController@test');
我的TestController看起来像这样:
public function test(Request $request)
{
var_dump($request->input('foo'));
}
当我使用参数
浏览到该路线时/test?foo=bar
结果为NULL。
有谁能告诉我我做错了什么?
Input :: get('foo')语法也不起作用(在L5的文档中甚至没有提到)。
更新
我正在使用Apache作为网络服务器。
我也试过
$request->get('foo')
和这样的路线
Route::get('test/{foo?}', 'TestController@test');
使用相同的网址并仍然为空。
更新2:
L5的文档给出了这样的路线示例:
/test/bar
而不是
/test?foo=bar
在L4中,可以浏览GET中的路线,如
/test?foo=bar&id=2&user=admin
或更改订单
/test?id=2&user=admin&foo=bar
有一条相同的路线
Route::get('test', 'TestController@test');
你所要做的就是用
来搞定Input::get('user')
但是使用L5时,如果必须在路径中使用斜杠,则无法更改参数的顺序,例如
Route::get('test/{id}/{user}/{foo}', 'TestController@test');
这对L5的路线来说真的是一个大降级吗?
答案 0 :(得分:1)
问题是.htaccess
文件,我使用的是编辑过的参数没有发送的文件。
使用Framework附带的默认.htaccess
文件,一切正常!
答案 1 :(得分:0)
你会试试吗?
use Request;
public function test(Request $request)
{
var_dump($request->get('foo'));
}
答案 2 :(得分:0)
在laravel 5中,您可以将一个参数放入控制器方法,如下所示:
public function test(Request $request, $foo)
{
}
with route - Route :: get('test / {foo}','TestController @ test');`