Tôi đang cố tạo một truy vấn trong Doctrine 2, tìm tất cả các đối tượng Vacancy
có liên quan đến bất kỳ đối tượng nào trong số các đối tượng VacancyWorkingHours
nhất định.Học thuyết 2 WHERE IN khoản sử dụng tập hợp các thực thể
Các Vacancy
thực thể trông như sau:
/**
* Vacancy
*
* @ORM\Table(name="vacancy")
* @ORM\Entity(repositoryClass="JaikDean\CareersBundle\Entity\VacancyRepository")
*/
class Vacancy
{
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var VacancyWorkingHours
*
* @ORM\ManyToOne(targetEntity="VacancyWorkingHours", inversedBy="vacancies")
* @ORM\JoinColumn(name="vacancy_working_hours_id", referencedColumnName="id")
**/
private $workingHours;
/* Other fields and methods are inconsequential */
}
truy vấn của tôi hiện trông như sau, nhưng không có kết quả trả về vì mệnh đề where. Trong ví dụ này, $workingHours
là một trường hợp Doctrine\Common\Collections\ArrayCollection
chứa một số VacancyWorkingHours
thực thể
$q = $this->createQueryBuilder('v')
->select('v')
->andWhere('v.workingHours IN (:workingHours)')
->setParameter('workingHours', $workingHours->toArray());
;
Cảm ơn, tôi có thể sẽ đi xuống tuyến đường đó. Mệnh đề WHERE IN cụ thể thực sự là một phần của truy vấn lớn hơn đang được xây dựng dựa trên các điều kiện khác nhau, do đó, việc sử dụng trình tạo truy vấn dễ dàng hơn từ quan điểm tổ chức. –