从控制器 Symfony2 中的 URL 获取参数
Posted
技术标签:
【中文标题】从控制器 Symfony2 中的 URL 获取参数【英文标题】:Get parameters from URL in Controller Symfony2 【发布时间】: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
相关的问题?有人可以帮帮我吗?
【问题讨论】:
【参考方案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->get('startPoints')
而不是$request->query->get('startPoint')
【讨论】:
不,你不应该!它慢得多。来自 PHPDoc:避免在控制器中使用此方法:* 慢,* 更喜欢从“命名”源获取。最好从适当的公共属性(查询、属性、请求)中显式获取请求参数。以上是关于从控制器 Symfony2 中的 URL 获取参数的主要内容,如果未能解决你的问题,请参考以下文章