将一个字段嵌入到表单中

时间:2014-07-21 13:55:59

标签: php symfony

我有两个表 - productsproduct_photos。它们是1:1的关系。我基于products表创建表单(使用doctrine ORM)。但我想从product_photos表中添加一个字段 - 我该怎么做?

    public function editProductDataAction($id, Request $request)
    {
        // entity manager
        $em = $this->getDoctrine()->getManager();

        // repository
        $r = $em->getRepository('AdminBundle:Product');

        // entity handler
        $product = $r->find($id);

        $form = $this->createForm(new EditCommonType(), new Product(),
        [
            'action'          => $this->generateUrl('product_edit', ['id' => $id]),
            'attr'            => ['class' => 'stdform', 'enctype' => 'multipart/form-data'],
            'repository_name' => 'AdminBundle:Product'
        ]);

        $form->add('productPhoto', new ProductPhotoType());

        $form->add('save', 'submit', ['attr' => ['class' => 'submit radius2']]);

        $form->handleRequest($request);

        //...
}

实体不变。 FormTypes也是。 Twig文件:

{% form_theme form 'AdminBundle::common_edit_form.html.twig' %} 
{{ form(form) }}
{{ form.productPhoto.photoName }} {# photoName - column from productPhoto table #}

现在,我收到Method "productPhoto" for object "Symfony\Component\Form\FormView" does not exist in AdminBundle:Product:edit.html.twig at line 23错误,这是在上面的twig代码的最后一行。

如果您需要更多代码,请在评论中输入。

1 个答案:

答案 0 :(得分:1)

你可以用这个:

{{form(form.productPhoto.vars.prototype.name)}}