0

現在、アプリケーションには、ユーザーがリストからお気に入りのアイテムを選択するためのオプションがあります。form要素はEntity型であり、オブジェクトのリストを表示します。ユーザーは、個人的なお気に入りとしてそれらの数を選択できます。

ただし、リストにはアイテムを表示する必要がありますが、保存する必要があるのは実際にはFavoritedItemです(ユーザーがいつ/どのようにアイテムをお気に入りに追加したかに関する追加情報が含まれています)。

ユーザーがItemエンティティのリストから選択できるようにエンティティタイプを変換する方法を理解できませんが、フォームにはユーザーに接続されたFavoritedItemsが格納されます。

4

1 に答える 1

1

あなたのエンティティは FavoritedItem と関係があると思います.フォームを作成するときは、そのフィールドを含めずに、ユーザーが選択したデータを含むダミーフィールドを含めてください:

$builder->add('favs', null, array('property_path' => false, 'type'='entity'.....));

次の行を見つけます。

    if ($form->isValid()) {
        // perform some action, such as saving the task to the database

        return $this->redirect($this->generateUrl('task_success'));
    }

アイテムごとに、エンティティに適切な FavoritedItem を設定します。次のようになります。

$favorites = $form->get('favs')->getData();

foreach($favorites as $f){
    $FavItem = new FavoritedItem($f);
    $yourEntity->addFavorite($FavItem);
}
于 2013-01-03T15:50:23.427 に答える