Laravel 5路由参数不发送

时间:2015-04-18 20:49:50

标签: php laravel parameters routes

使用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的路线来说真的是一个大降级吗?

3 个答案:

答案 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');`