0

在控制器中我找到了 id

 $oggetto = $this->getDoctrine()
        ->getRepository('AcmeTryBundle:Try')
        ->find($id);

在我将这个 $values 传递给表单之后(只是?)

$form = $this->createForm(new TryType(), $oggetto);

并在 FormType 中?我放了什么?

public function buildForm(FormBuilder $builder, array $options)
    {
        $builder->add('name','text')  ? 
4

3 回答 3

0

你的表格看起来不错

class TryFormType extends AbstractType {
    public function buildForm(FormBuilder $builder, array $options)
        {
            $builder->add('name','text')  ;
        }

 public function getName() {
        return 'tryform';
    }
}

函数 getName 为表单命名,在本例中为 tryform。

在控制器中,您可以添加这样的 return 语句。

return $this->render('AcmeTryBundle:Default:TryForm.html.twig', array(
                    'TryForm' => $form->createView()
                ));

并在树枝文件中按如下方式访问它。

{{ form_widget(TryForm.name) }}

该值将自动传递到那里。然后你可以编辑它

于 2012-04-23T08:55:38.147 回答
0

你的方法很好。

1)$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

于 2012-04-21T23:05:25.633 回答
0

例如,在Symfony 4.2.3中,您填写并提交了一个表单,并且某些表单值无效。

<input type="text" name="name" value="{{ form.vars.value.name }}">

这样,如果值有效,您将设置旧表单输入为默认值。

于 2019-03-31T11:59:21.197 回答