我是symfony的新手。我使用代码创建了一个注册表单:
$user = new Register();
$form = $this->createForm(new RegisterType(), $user);
在RegisterType类中,我有5个字段(例如)。当用户向系统注册时,我将值存储在数据库中。现在我使用以下代码显示EDIT页面:
$user = $em->getRepository('MysiteUserBundle:Register')->find($id);
$form = $this->createForm(new RegisterType(), $user);
// edit.html.twig code
<form action="{{ path('MysiteUserBundle_register_update',{'id':user.id}) }}" method="post" {{ form_enctype(form) }} class="register">
{{ form_errors(form) }}
{{ form_row(form.firstname) }}
{{ form_row(form.lastname) }}
{{ form_row(form.username) }}
<p>
<input type="submit" value="Submit">
</p>
</form>
EDIT代码的问题是它显示了RegisterType类中提到的所有字段。是否可以只显示一些字段。如果是,如何实现这一目标。任何帮助将不胜感激
答案 0 :(得分:2)
使用注册表单类型编辑用户没有意义,因为每个用户注册一次。相反,您可以创建另一种表单类型,仅包含编辑用户时所需的字段。可以扩展另一个以避免重复。
你也可以:
$options['data']
,并检查其ID是否为null
或其他。