У меня есть таблица:
/**
* Fcsnotificationea
*
* @ORM\Table(name="fcsNotificationEA")
* @ORM\Entity
*/
class Fcsnotificationea
{
...
/**
* @ORM\OneToMany(targetEntity="Attachmentstoea", mappedBy="Fcsnotificationea")
**/
private $attachments;
...
/**
* Constructor
*/
public function __construct()
{
$this->attachments = new \Doctrine\Common\Collections\ArrayCollection();
}
/**
* Add attachment
*
* @param \Custom\ScanFilesBundle\Entity\Attachmentstoea $attachment
*
* @return Fcsnotificationea
*/
public function addAttachment(\Custom\ScanFilesBundle\Entity\Attachmentstoea $attachment)
{
$this->attachments[] = $attachment;
return $this;
}
/**
* Remove attachment
*
* @param \Custom\ScanFilesBundle\Entity\Attachmentstoea $attachment
*/
public function removeAttachment(\Custom\ScanFilesBundle\Entity\Attachmentstoea $attachment)
{
$this->attachments->removeElement($attachment);
}
/**
* Get attachments
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getAttachments()
{
return $this->attachments;
}
и есть еще одна:
/**
* Attachmentstoea
*
* @ORM\Table(name="attachmentsToEA", indexes={@ORM\Index(name="notificationEAid", columns={"notificationEAid", "id"}), @ORM\Index(name="IDX_5637D788CEB3C986", columns={"notificationEAid"})})
* @ORM\Entity
*/
class Attachmentstoea
{
...
/**
* @var \Fcsnotificationea
*
* @ORM\ManyToOne(targetEntity="Fcsnotificationea")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="notificationEAid", referencedColumnName="id")
* })
*/
private $notificationeaid;
...
у меня сгенерены методы типа
/**
* Add attachment
*
* @param \Custom\ScanFilesBundle\Entity\Attachmentstoea $attachment
*
* @return Fcsnotificationea
*/
public function addAttachment(\Custom\ScanFilesBundle\Entity\Attachmentstoea $attachment)
{
$this->attachments[] = $attachment;
return $this;
}
сначала я делаю сеттеры для объекта Fcsnotificationea. Делаю persist для объекта Fcsnotificationea. Но flush не делаю.
Потом делаю сеттеры для объекта Attachmentstoea. И только потом вызываю сеттер для объекта Fcsnotificationea :
$eaNotification->addAttachment($eaAttachments);
и только потом делаю flush.
Вобщем-то база наполняется нормально.
но мне надо в twig выводить информацию и я никак не могу вызвать метод getAttachments для Fcsnotificationea. Хотя в entity этот метод есть:
/**
* Get attachments
*
* @return \Doctrine\Common\Collections\Collection
*/
public function getAttachments()
{
return $this->attachments;
}
пробую вызывать этот метод в twig'e
{% for notification in notificationsEA %}
{% for attach in notification.getAttachments %}
мне пишут: Undefined index: Fcsnotificationea, где строка {% for attach in notification.getAttachments %}
по-разному пробовала делать select результата и с joinом и без join'a - безрезультатно. Никак не могу достучаться до attachemts:
Делаю так запрос вобщем:
$twig_params["notificationsEA"] = $em->createQueryBuilder()
->select('n')
->from('CustomScanFilesBundle:Fcsnotificationea', 'n')
->setFirstResult($page)
->setMaxResults(10)
->join('CustomScanFilesBundle:Attachmentstoea', 'a',
\Doctrine\ORM\Query\Expr\Join::WITH, 'n.id = a.notificationeaid')
->getQuery()
->getResult();