В Symfony 5 я создал 2 сущности, связанные с отношением ManyToOne: Project
- это родитель, Serie
- это дочерний элемент.
Project
сущность:
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Repository\SerieRepository")
*/
class Serie
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=100)
*/
private $name;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Project", inversedBy="series")
* @ORM\JoinColumn(nullable=false)
*/
private $project;
[...]
}
Serie
сущность:
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Repository\ProjectRepository")
*/
class Project
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=100)
*/
private $name;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Serie", mappedBy="Project", orphanRemoval=true)
*/
private $series;
[...]
}
Я не писал здесь, но у вас также есть все методы получения и установки для каждого класса.
Мне нужен доступ к сущности Project
в сущности Serie
. Например: доступ к свойству name объекта Project путем добавления метода getProjectName
в класс Serie
.
public function getProjectName()
{
return $this->project->getName();
}
Но это не работает, поскольку объект Project
не загружен (только Я бы). Как я могу получить это значение, не добавляя хранилище в классе сущностей или передавая аргументы методу getProjectName
? (может быть Doctrine аннотация ...).