Forms 如何使Symfony2实体formtype显示类型A的实体,但将其另存为类型B?
我目前在我的应用程序中有一个选项,用户可以从列表中选择喜爱的项目。form元素的类型为Entity,并显示对象列表。用户可以选择其中一些作为他们的个人收藏 但是,尽管列表必须显示项目,但必须存储的实际上是FavoritedItem(其中包含有关用户何时/如何偏爱其项目的额外信息)Forms 如何使Symfony2实体formtype显示类型A的实体,但将其另存为类型B?,forms,symfony,Forms,Symfony,我目前在我的应用程序中有一个选项,用户可以从列表中选择喜爱的项目。form元素的类型为Entity,并显示对象列表。用户可以选择其中一些作为他们的个人收藏 但是,尽管列表必须显示项目,但必须存储的实际上是FavoritedItem(其中包含有关用户何时/如何偏爱其项目的额外信息) 我不知道如何转换实体类型,以便用户可以从项目实体列表中选择,但表单存储连接到用户的FavoritedItems。我猜您的实体与FavoritedItem有关系,在创建表单时,不要包含该字段,但包含用户选择的数据的虚拟字
我不知道如何转换实体类型,以便用户可以从项目实体列表中选择,但表单存储连接到用户的FavoritedItems。我猜您的实体与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);
}
您的实体是如何设置的?这两者之间有什么关系?谢谢。有没有办法在表单中处理所有这些问题?由于可重用性,我不希望将逻辑移到控制器上。如果要使用现在使用的相同字段类型,请创建自定义转换器(),您可能希望看到以下问题: