【问题标题】:Get parameters from URL in Controller Symfony2从控制器 Symfony2 中的 URL 获取参数
【发布时间】:2015-02-07 00:45:57
【问题描述】:

我尝试通过 get 方法提交表单,但是在控制器中我无法获取值,这里是控制器:

  var_dump($request->query->get('startPoint')); // its NULL

我的表格:

<form id="s_f" action ="{{ path('trip_search') }}" method="get" novalidate="">
    {{ form_widget(search_form, {'attr': {'class': 'search_form'} }) }}
</form>

生成的网址:

http://example.com/app_dev.php/search_trips?search_form%5BstartPoint%5D=3123123&search_form%5BendPoint%5D=&search_form%5

可能与 URL 中的符号 %5D 相关的问题?有人可以帮帮我吗?

【问题讨论】:

    标签: php forms symfony get


    【解决方案1】:

    如果找不到 QS 值,请这样做:

    var_dump($request->query->all());
    

    它显示所有 QS 值;

    在您的情况下,您可以通过以下方式访问您的 QS 数据:

    $formData = $request->query->get('search_form');
    

    $formData = $request->query->get($form->getName());
    

    它返回值数组,之后你可以像这样访问startPoints

    $formData['startPoints']
    

    【讨论】:

      【解决方案2】:

      你应该写$request-&gt;get('startPoints')而不是$request-&gt;query-&gt;get('startPoint')

      【讨论】:

      • 不,你不应该!它慢得多。来自 PHPDoc:避免在控制器中使用此方法:* 慢,* 更喜欢从“命名”源获取。最好从适当的公共属性(查询、属性、请求)中显式获取请求参数。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 2013-03-04
      • 1970-01-01
      • 2017-12-16
      • 1970-01-01
      相关资源
      最近更新 更多