@gitdev

Как сделать выборку в Symfony по полю ManyToMany?

Symfony 5.2

/**
 * @ORM\Entity(repositoryClass=VacancyRepository::class)
 * @ORM\Table(name="vacancies")
 */
class Vacancy
{
    /**
     * @ORM\ManyToMany(targetEntity=Skill::class, inversedBy="vacancies")
     */
    private $skill;
}

...

Есть таблица с скилами
/**
 * @ORM\Entity(repositoryClass=SkillsRepository::class)
 * @ORM\Table(name="skills")
 */
class Skill
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=50)
     */
    private $name;

    /**
     * @ORM\Column(type="string", length=255, nullable=true)
     */
    private $url;

    /**
     * @ORM\ManyToMany(targetEntity=Vacancy::class, mappedBy="skill")
     */
    private $vacancies;

    public function __construct()
    {
        $this->vacancies = new ArrayCollection();
    }
}


Есть промежуточная таблица vacancy_skill

Как сделать выборку в Query Builder. Нужно добавить таблицу которая ManyToMany(Skills) и указать список id который нам прилетает с фронта?
$vacanciesQueryBuilder = $entityManager->getConnection()
            ->createQueryBuilder()
            ->select('v.*, v.english_level')
            ->from($entityManager->getClassMetadata(Vacancy::class)->getTableName(), 'v')
  • Вопрос задан
  • 49 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы