Tôi phải tự động thêm các biểu thức OR
vào trình tạo truy vấn được trả về bởi getListQueryBuilder
, ngay sau khi thêm mệnh đề where
. Tôi không thể tìm thấy bất kỳ cách phù hợp để làm điều này, tôi chỉ mới bắt đầu học Doctrine.Chaining orX trong trình tạo truy vấn Doctrine2
Làm cách nào để "chuỗi" một số được cho là orX
và thêm chúng vào trình tạo của tôi?
public function getListQueryBuilder($ownerId)
{
$qb = $this->createQueryBuilder('t');
return $qb
->where($qb->expr()->eq('t.user', ':user'))
->setParameter('user', $ownerId);
}
$builder = getListQueryBuilder(4);
// $ORs is a dynamically builded array, here is just an example
$ORs = array();
$ORs[] = $builder->expr()->like("t.name", 'my name');
$ORs[] = $builder->expr()->like("t.description", 'desc');
// Adding ORs to the builder
$builder->andWhere($builder->expr()->orX(/* here */));
Nếu bạn không muốn đọc toàn bộ bài viết: $ orX = $ builder-> expr() -> orX(); foreach ($ ORs là $ hoặc) { $ orX-> thêm ($ hoặc); } $ builder-> andWhere ($ orX); –
@LouTerrailloune mà nên trở thành một phần của câu trả lời –
Điều đó đã làm cho các trick cho tôi! cổ vũ cho chỉ nó ra :) – Sharpy35