表单的视图数据应该是标量类型

时间:2014-08-22 11:50:39

标签: symfony formview symfony-2.4

我想破了我的脑袋.. "表单的视图数据应该是标量,数组或\ ArrayAccess的实例,但是类Puig \ IFBBundle \ Entity \ OrderRow的实例。您可以通过设置" data_class"来避免此错误。选项" Puig \ IFBBundle \ Entity \ OrderRow"或者通过添加一个视图转换器,将Puig \ IFBBundle \ Entity \ OrderRow类的实例转换为标量,数组或\ ArrayAccess的实例。 "

我使用setData('查看数据');在cuestion中的形式,但不工作,我理解这种形式来查看结果。

我的代码:

public function listOrdersToExportAction($batchInputFile)
{
    $orderRows = $this->getDoctrine()->getRepository('IFBBundle:OrderRow')
                                    ->findAllToExport();

    $orderRowsAction = new OrderRowsAction();
    $orderRowsAction->setOrderRows($orderRows);
    $orderRowsAction->setReturnRoute('listOrdersToExport');

    $formInvoice = $this->createForm(new OrderRowsActionType(), $orderRowsAction, array('actionType' => 'export'));

    return $this->render('IFBBundle:Orders:listOrdersToExport.html.twig', array('orderRows' => $orderRows,
                                                                                'formInvoice' => $formInvoice->createView(),
                                                                                'batchInputFile' => $batchInputFile));
}

1 个答案:

答案 0 :(得分:1)

是的,正如Rpg600所述,在您的表单类中,您需要像这样设置data_class:

use Symfony\Component\OptionsResolver\OptionsResolverInterface;

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
    $resolver->setDefaults(array(
        'data_class' => 'Puig\IFBBundle\Entity\OrderRow',
    ));
}