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')