【问题标题】:Twig get url parameter with []Twig 使用 [] 获取 url 参数
【发布时间】:2015-04-11 23:19:18
【问题描述】:

我有一个类似的网址:MYURL?filter[_per_page]=25&filter[name][value]=hello

如何使用 twig 获取这些参数?

我正在尝试{{ app.request.get('filter[_per_page]') }},但它总是空的...

谢谢!

编辑:我在 javascript 中,我想将此结果分配给 javascript 变量,例如:var param = "{{ app.request.get('filter[_per_page]') }}";

【问题讨论】:

  • 您是否尝试从子请求(即嵌入控制器)访问查询参数?尝试调用 {{app.request.query.all}} 并查看打印内容。希望对您有所帮助。

标签: php symfony twig


【解决方案1】:

您必须将访问filter 元素的数组作为:

{{ app.request.get('filter')['_per_page'] }}

(这次我在发帖前先试试……)

【讨论】:

  • 确定吗? ^^ 无法访问 NULL 变量上的键(“_per_page”)
  • 很奇怪...我完全复制了你的喜欢。如果我尝试使用{{ app.request.get('filter') }},则会出现错误:`数组到字符串转换`所以我附加访问数组键元素并打印正确的25...
  • 对我来说只有 {{ app.request.get('filter') }} 我什么都没有,又是空字符串...
  • 我尝试使用网址:http://spike.localhost/app_dev.php/issue?filter[_per_page]=25&filter[name][value]=hello
  • 我在一个包含在另一个... ^^ 中的树枝圣殿中
【解决方案2】:

你已经差不多了。

app 对象是 GlobalVariables 实例。当您说app.request 时,getRequest() 正在被调用并返回标准Request 对象的实例。

现在,如果您查看Request::get() (link),就会发现:

get(string $key, mixed $default = null, bool $deep = false)

我认为你需要做的是:

{{ app.request.get('filter[_per_page]', NULL, true) }}

其中NULL是默认值,true表示deep遍历Request对象。

【讨论】:

  • 不一样,我有一个空值
【解决方案3】:

我找到了这样的解决方案:

app.request.attributes.get('request').query.get('param_name')

【讨论】:

  • 虽然此代码可以解决问题,including an explanation 说明如何以及为什么解决问题将真正有助于提高您的帖子质量,并可能导致更多的赞成票。请记住,您正在为将来的读者回答问题,而不仅仅是现在提问的人。请edit您的回答添加解释并说明适用的限制和假设。
【解决方案4】:

要访问查询参数数组,您可以使用:

app.request.attributes.get('_route_params');

您可以在documentation看到不同的解决方案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-18
    • 2022-01-07
    • 1970-01-01
    • 1970-01-01
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多