输入用户名的源代码如下:
<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')
;
}
答案 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的指导,这对我很有帮助,对不起我的英语。