2012-04-21 52 views
0

在控制器我找到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

你的意思是在错误的情况下输入值被记住的形式? (它:意图联合起来在卡索迪errore吗?) – gremo 2012-04-21 18:36:40

+0

sei italiano? 我想要显示旧值,当更新ID Popolitus 2012-04-21 19:15:18

回答

0

您的方法很好。

1)让您的$oggetto对象DB

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

+0

return 预期的参数类型“标量”,“DateTime”给出 – Popolitus 2012-04-21 23:28:15

+0

您可以更加明确这个错误,你能编辑你的问题并向我们展示:你的FormType和实体中有什么? :) – guillaumepotier 2012-04-22 07:01:52

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() 
       )); 

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

{{ form_widget(TryForm.name) }} 

值将自动那里通过。你可以编辑它

相关问题