因为tittle说我无法获得这些值,这是我的代码:
我收到了这张表格(未映射):
$default = array('default' => '');
$form2 = $this->createFormBuilder($default)
->add('Users', 'choice', array(
'choices' => $info,
))
->getForm();
其中$ info是一个字符串数组。
我正在尝试访问这样的数据:
if ($request->getMethod() == 'POST') {
$data = $this->get('request')->request->get('form');
$user = implode(",", $data);
}
但我得到的结果是这样的:
0,ACARxcur37cumZiRm5AmmyRJdC5UpuO1hb43I5LFx2A
我假设0是选定的索引但是,为什么我得到那个代码?看起来有点格式。
尝试克里斯建议的方式:
$default = array('default' => '');
$info = array();
$form = $this->createFormBuilder($default)
->add('Users', 'choice', array(
'choices' => $info,
))
->getForm();
$form->handleRequest($request);
//1st try:
$data = $form2->get('Users')->getConfig()->getOption('choices');
//2nd try:
$data = $form2->get('Users');
在第一次尝试中,我什么都没有看似空洞。
在第二次尝试中我收到错误。
PD:我需要获取所选的值,而不是完整的字段。
感谢阅读,希望你能帮助我。
答案 0 :(得分:0)
您应该使用Symfony方式处理表单。
所以不要做
($request->getMethod() == 'POST)
使用表单实际获取的数据不是$ _REQUEST
会这样做
$form->handleRequest($request);
if($form->isValid()) {
$data = $form->get('Users')->getData();
}
答案 1 :(得分:0)
解决了,因为我认为" 0"在结果" 0,ACARxcur37cumZiRm5AmmyRJdC5UpuO1hb43I5LFx2A"实际上是选项值,所以解决方案是在构建$ info时改变该值。
而不是:
array_push($信息,$用户);
我做了: $ info [$ user] = [$ user];
这样选项值和标签包含相同的内容。
谢谢大家。