1
나는 두 개의 항목 - 변호사와 범주가 있습니다. 그들은 Many to Many 협회와 연결되어 있습니다. 예시 변호사가 3 가지 카테고리를 가지고 있다고 가정하십시오. 나는 일련의 범주별로 변호사를 검색 할 수있는 기능을 만들고 싶습니다. 배열에서 모든 범주를 가진 변호사 만 반환해야합니다.Symfony 2, QueryBuilder, multiple 및 동일한 매개 변수가있는 곳
class Lawyer {
//...
/**
* @ORM\ManyToMany(targetEntity="Dees\KancelariaBundle\Entity\Category")
* @ORM\JoinTable(name="lawyers_has_categories",
* joinColumns={@ORM\JoinColumn(name="lawyer_id", referencedColumnName="id")},
* inverseJoinColumns={@ORM\JoinColumn(name="category_id", referencedColumnName="id")}
*)
*
* @var ArrayCollection
*/
protected $categories = null;
//...
}
class Category {
//...
/**
* @ORM\Column(length=255, nullable=true)
*
* @var string
*/
protected $name;
//...
}
public function searchLawyers(array $categories) {
$queryBuilder = $this->createQueryBuilder('lawyer')
->join('lawyer.categories', 'category');
$queryBuilder->andWhere("category.name = :category1");
$queryBuilder->setParameter("category1", "First category");
$queryBuilder->andWhere("category.name = :category2");
$queryBuilder->setParameter("category2", "Second category");
//...
//won't work, return null, but lawyer with these categories exists.
}
어떻게하면됩니까?