在控制器中我找到了id
$oggetto = $this->getDoctrine()
->getRepository('AcmeTryBundle:Try')
->find($id);
我把这个$值传递给表格后(只是?)
$form = $this->createForm(new TryType(), $oggetto);
并在FormType中?我放的是什么?
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('name','text') ?
答案 0 :(得分:0)
你的方法很好。
1)在DB中获取$oggetto
对象
2)将其传递给您的FormType $form = $this->createForm(new TryType(), $oggetto);
3)在表单类型中添加所需的字段
4)将表单发送到您的观看'form' => $form->createView()
5)在您看来,请致电您的表格
<form action="{{ path('task_new') }}" method="post" {{ form_enctype(form) }}>
{{ form_widget(form) }}
<input type="submit" />
</form>
您的字段(在3中定义))将由您的对象数据自动填充。然后,您可以更改它们并进行编辑。
有关详细信息,请参阅文档:http://symfony.com/doc/current/book/forms.html
答案 1 :(得分:0)
你的表格似乎很好
class TryFormType extends AbstractType {
public function buildForm(FormBuilder $builder, array $options)
{
$builder->add('name','text') ;
}
public function getName() {
return 'tryform';
}
}
函数getName为表单提供一个名称,在本例中为tryform。
在控制器中,您可以添加这样的返回语句。
return $this->render('AcmeTryBundle:Default:TryForm.html.twig', array(
'TryForm' => $form->createView()
));
在twig文件中访问如下。
{{ form_widget(TryForm.name) }}
该值将自动传递到那里。然后你可以编辑它
答案 2 :(得分:0)
例如,在 Symfony 4.2.3 中,您填写并提交了表单,并且某些表单值无效。
<input type="text" name="name" value="{{ form.vars.value.name }}">
通过这种方式,如果值有效,则将旧表单输入设置为默认值。