createForm с объектом, полученным в базе данных - PullRequest
0 голосов
/ 07 ноября 2011

У меня странная проблема, при попытке создать форму с объектом, полученным из базы данных, выдается ошибка:

$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()        
);

=>

Ожидаемый аргументтипа "массив", "Doctrine \ ORM \ PersistentCollection" задано

Но, если это новый объект, проблем нет:

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

=> нет ошибки

Знаете ли вы, в чем проблема?

Редактировать : Проблема "решена", см. Комментарии ниже.

1 Ответ

0 голосов
/ 07 ноября 2011

Вам не нужен getSingleResult, только:

$group = $this->getDoctrine()
    ->getRepository('MuzichCoreBundle:Group')
    ->findOneBySlug($slug)
;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...