2017-08-13 122 views
1

我可以看到参数填充,当我转储($请求 - >请求)Symfony的3.3.6请求参数

ParameterBag {#69 ▼ 
    #parameters: array:1 [▼ 
    "form" => array:8 [▼ 
     "phone" => "2042333233" 
     "price" => "72" 
     "region" => "1" 
     "accept_terms" => "1" 
     "_token" => "XXX" 
    ] 
    ] 
} 

但是,当我尝试访问的参数:

$request->get('phone') 
$request->request->get('phone') 

该请求是从一个POST填充 - 所以后者应该工作,但结果为空?

+0

您是否使用了Symfony的形式或硬编码的形式? –

+0

硬编码(动态)形式 - 我认为这是通过调用createFormBuilder()而不是createForm()来实现的。有不同的方法吗? –

+0

向我们展示你的表单是什么样的 - 如果你使用的是表单/表单构建器,那么检索数据比直接通过'Request'对象获得更好的方法 –

回答

0

试试这个:

$request->request->get('form')['phone'] 
+0

那是什么 - 但我不确定我明白为什么?我看到的官方文档都没有显示出这一点 - 我错过了什么? –

+0

因为你的'phone'值已经变成'array'形式 –

+0

表单组件是如何生成元素名称的。表单组件支持嵌套表单,因此它需要一个数组来正确映射所有内容。从浏览器中,使用ctrl-u查看生成的html代码。可能会让事情更清楚些。 – Cerad