createForm包含在数据库中检索的对象

时间:2011-11-07 17:09:13

标签: php forms symfony

我有一个奇怪的问题,当我尝试创建一个在数据库中检索到对象的表单时会抛出错误:

$user = $this->getUser();

try {

  $group = $this->getDoctrine()
    ->getRepository('MuzichCoreBundle:Group')
    ->findOneBySlug($slug)
    ->getSingleResult()
  ;

} catch (\Doctrine\ORM\NoResultException $e) {
    throw $this->createNotFoundException('Groupe introuvable.');
}

if ($group->getOwner()->getId() != $user->getId())
{
  throw $this->createNotFoundException('Vous n\'ête pas le créateur de ce groupe.');
}

$form = $this->createForm(
  new GroupForm(), 
  $group,
  array('tags' => $this->getTagsArray())
);

return array(
  'group' => $group,
  'form'  => $form->createView()        
);

=>

  

“array”,“Doctrine \ ORM \ PersistentCollection”类型的预期参数

但是,如果它是一个新对象,没有问题:

$form = $this->createForm(
  new GroupForm(), 
  new Group(),
  array('tags' => $this->getTagsArray())
);

=>没有错误

你现在有什么问题吗?

修改:问题“已解决”,请参阅下面的评论。

1 个答案:

答案 0 :(得分:0)

您不需要getSingleResult:

$group = $this->getDoctrine()
    ->getRepository('MuzichCoreBundle:Group')
    ->findOneBySlug($slug)
;