1

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

这些是我的实体:

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:“对象或数组”类型的预期参数,给出“NULL”

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

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

但我收到以下错误:

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

所以我不明白我的错误在哪里。也许我不明白他在教义关系背后的模型?

4

0 回答 0