【发布时间】:2015-06-25 16:35:17
【问题描述】:
使用 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');
使用相同的 URL 仍然为空。
更新 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 路线的大降级吗?
【问题讨论】:
-
我不知道为什么它对你不起作用,但这里证明你可以使用
\Illuminate\Http\Request访问GET参数:prntscr.com/6viqmv。也许你的 apache 设置有问题。 -
那真的会在浏览器中返回“bar”吗?
-
抱歉,在手机上查看了屏幕,没有看到完整的图像。这是在 apache 上运行 Laravel 的 versin 5 吗?
标签: php laravel parameters routes