Lumen:在Blade视图中获取URL参数

126

我正在尝试从一个视图文件中获取URL参数。

我有这个URL:

http://locahost:8000/example?a=10

还有一个名为example.blade.php视图文件。

我可以通过$request->input('a')从控制器获取参数a

是否有一种方法可以从视图中获取这样的参数(而不必将其从控制器传递到视图)?


你可以访问$_GET[]数组,但我不建议这样做。你应该将它从控制器传递到视图中,不确定为什么你不想这样做。 - Tim Lewis
@TimLewis 我会避免从控制器传递它,因为如果我有很多参数,那么这可能会很麻烦,而且直接从视图获取它应该更快。 - Andrea
我猜从控制器定义和传递大量变量到视图可能会很繁琐,但是我宁愿选择繁琐也不要采用不良实践... - Tim Lewis
思考一下为什么在视图中无法直接访问$request,以及为什么直接访问$_GET、$_POST、$_REQUEST是不好的编程实践。 - mvladk
@mvladk 是的,实际上是这样的。框架会从这些变量中删除潜在的不良数据。 - Bhargav Nanekalva
13个回答

156

2
此代码将返回所有参数:app('request')->request->all() - dav
如果我的URL是http://locahost:8000/example/10,我想要获取值10,应该怎么做呢?@Andrea - Sajeeb Ahamed
@SajeebAhamed 最好您提出一个新问题问:http://stackoverflow.com/questions/ask - Andrea

72
我使用过的最短路线。
{{ Request::get('a') }}

2
这个在哪里有文档记录? - feeela

53

假设您有以下URL:

http://locahost:8000/example?a=10

我找到的获取'a'的值并在页面上显示的最佳方法是使用以下代码:

{{ request()->get('a') }}

不过,如果你想在if语句中使用它,你可以使用:

@if( request()->get('a') )
    <script>console.log('hello')</script>
@endif

31

Laravel 5.7和5.8更加简单易用。

{{ Request()->parameter }}

完美运行,谢谢! - Kush

12

Laravel 5.8

{{ request()->a }}

11

这对我来说很好用:

{{ app('request')->input('a') }}

例如,在Blade视图中获取分页参数的示例:

{{ app('request')->input('page') }}

9
根据官方5.8文档:
请求函数(request())返回当前请求实例或获取一个输入项:
$request = request();

$value = request('key', $default);

文档


7
你可以通过在config/app.php中设置别名来公开暴露Input门面:
'aliases' => [
    ...

    'Input' => Illuminate\Support\Facades\Input::class,
]

您可以直接在 Blade 视图/模板中使用门面(facade)来访问 $_GET 参数的值:

{{ Input::get('a') }}

Lumen 有 /config 文件夹吗? - Mahefa

7

以上所有答案都是正确的,但有一种更快的方法可以实现。

{{request("a")}}

4

Laravel 5.6:

{{ Request::query('parameter') }}

1
请添加一些解释。 - petezurich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接