在Symfony2控制器中获取表单值,Child不存在

时间:2015-05-30 12:03:21

标签: php symfony

输入用户名的源代码如下:

<input type="text" id="user_username" name="user[username]" >

当我尝试在控制器中获取它时,我收到此错误:

Child "username" does not exist

控制者:

//.......
if ($request->getMethod() == 'POST') {
        $form->handleRequest($request);
        $i = 0;
        $username = $form["username"]->getData();
        $user= $em->getRepository('UsersBundle:User')->findOneByUsername($username);

//.......
}

这是formType

class EleveType extends AbstractType
{
 public function buildForm(FormBuilderInterface $builder, array $options)
   {
    $builder
        ->add('user', new UserType())
        ->add('ecole')
        ->add('niveauscolaire')

    ;
}

3 个答案:

答案 0 :(得分:6)

替换

$username = $form["username"]->getData();

$username = $form["user"]["username"]->getData();

答案 1 :(得分:1)

如果:

$username = $form["user"]["username"]->getData();

不起作用,您可以改用:

$username = $form['user']->getData()->getUsername();

(在 SF 4-5 中测试)

答案 2 :(得分:0)

就我而言,我需要使用:

$username = $form["user"]["username"]->getViewData();

而不是:

$username = $form["user"]["username"]->getData();

感谢@Jacob的指导,这对我很有帮助,对不起我的英语。