我有这个例子的Symfony2文档的基本表单,模板和控制器操作.
每当我尝试在控制器操作中获取表单的参数时,我必须使用此:
$parameters = $request->request->all();
$name = $parameters["form"]["name"];
Run Code Online (Sandbox Code Playgroud)
但是,在文档中使用此:
$name = $request->request->get('name');
Run Code Online (Sandbox Code Playgroud)
但这对我来说是错误的,在这种情况下$ name为null并且Object请求(ParameterBag)包含:
object(Symfony\Component\HttpFoundation\ParameterBag)#8 (1) {
["parameters":protected]=>
array(1) {
["form"]=>
array(1) {
["name"]=>
string(4) "test"
}
}
}
Run Code Online (Sandbox Code Playgroud)
Alt*_*PHP 10
$formPost = $request->request->get('form');
$name = $formPost['name'];
Run Code Online (Sandbox Code Playgroud)
或者从PHP 5.4开始
$name = $request->request->get('form')['name'];
Run Code Online (Sandbox Code Playgroud)
在我看来,访问提交数据的最佳方法是首先将请求绑定到表单,然后从Form对象访问值:
if ('POST' === $request->getMethod())
{
$form->bindRequest($request); //Symfony 2.0.x
//$form->bind($request); //Symfony 2.1.x
$name = $form->get('name')->getData();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11643 次 |
| 最近记录: |