1

我设置了一个包含多个扩展表单的表单

$builder->add('rooms', 'entity', array(
        'class' => 'MyBundle:House',
        'multiple' => true,
        'expanded' => true,
        'required' => false
));

基础类 House 有一个 rooms 属性,定义为多对多关系

/**
 * @ORM\ManyToMany(targetEntity="RoomsType", cascade={"all"}) 
 */
private $rooms;

public function __construct()
{
    $this->rooms = new \Doctrine\Common\Collections\ArrayCollection();
}

public function addRooms($room)
{
    $this->rooms[] = $room;
}

public function getRooms()
{
    return $this->rooms;
}

当我呈现表单时

{{ form_row(form.rooms }}

然后提交表单,我遇到以下异常:Expected argument of type 'array' 'string' given (500 Internal Server Error)

如果表单未配置为扩展,则不会引发异常,并且表单与基础对象之间的绑定可以正常工作。

任何想法 ?

4

1 回答 1

0

您的关系的 targetEntity 有一个奇怪的名称 RoomsType。您确定您的实体是 RoomsType 而不仅仅是房间吗?我希望您的 RoomsType 为您的 Rooms 实体定义表单

于 2012-01-25T12:51:54.637 回答