symfony2表单创建多对一关系和现有外键

时间:2012-11-05 10:16:28

标签: forms symfony one-to-many

我正在尝试为与另一个实体有多对一关系的实体设置创建表单。

这些是我的实体:

class EvntEvents
{

/**
* Get id
 *
 * @return integer 
 */
public function getId()
{
    return $this->id;
}


/**
 * @ORM\OneToMany(targetEntity="EvntSessions", mappedBy="eventFk")
 * 
 * @var ArrayCollection $sessions
 * 
 */
protected $sessions;

/**
 * Add sessions
 *
 * @param Technogym\EventsBundle\Entity\EvntSessions $sessions
 * @return EvntEvents
 */
public function addSession(\Technogym\EventsBundle\Entity\EvntSessions $sessions)
{
$this->sessions[] = $sessions;

return $this;
}

/**
 * Get sessions
 *
 * @return Doctrine\Common\Collections\Collection 
 */
public function getSessions()
{
 return $this->sessions;
}
}

后一个实体记录已经存在,所以我想将其id作为隐藏字段包含在表单中,如下所示:

$entity = new EvntSessions();
$entity->setEventFk($event);
$form   = $this->createForm('form_sessions', $entity);

表单显示正确但在提交时我收到以下错误:

UnexpectedTypeException:类型为“object or array”的预期参数,“NULL”给出

所以我在绑定请求之前创建了关系:

$event->addSession($entity);
$entity->setEventFk($event);

但是我收到以下错误:

PropertyAccessDeniedException:属性“id”在“EvntEvents”类中不公开。也许你应该创建方法“setId()”?

所以我不明白我的错误在哪里。也许我不理解他在学说关系背后的模范?

0 个答案:

没有答案