我的实体
/**
* Set friend
*
* @param \Frontend\ChancesBundle\Entity\UserFriends $friend
* @return ChanceRequest
*/
public function setFriend(\Frontend\ChancesBundle\Entity\UserFriends $friend = null)
{
$this->friend = $friend;
return $this;
}
我的行动
$task = new ChanceRequest();
$form = $this->createFormBuilder($task)
->add('friend', 'choice', array(
'required' => true,
'expanded' => true,
'choices' => $fb_friends,
'multiple' => true,
'mapped' => true
))
->getForm();
因为setFriend
期待标量,我无法验证或将其保存到db。它是一个数组,来自用户希望向某人发送消息的朋友数量。我怎样才能改变它?
我在这里看到一篇帖子:
Symfony2 Choice : Expected argument of type "scalar", "array" given
但是这不起作用我把数组放在\Frontend
或$friend.
前面我猜是因为相关的表格。
我需要在Entity中做些什么才能让它发挥作用?
答案 0 :(得分:1)
如果在您的数据库中找到friends
(例如,它是一个用户实体),您应该为这两个表声明ManyToMany
关系。如果不是,请将friend
属性设置为学说数组类型。如果朋友不是有效的实体类,那么剩下的就是创建自定义验证器和数据变换器。否则你什么也没做。您可以在官方的symfony和doctrine文档中找到所有这些信息。