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であり、Roomsだけではありませんか? RoomsType が Rooms エンティティのフォームを定義することを期待しています

于 2012-01-25T12:51:54.637 に答える