Tôi có hai thực thể, Bưu kiện
và Loại
Một Bưu kiện
thuộc về một Loại
thông qua một thực thể_reference
tên loại trường Thể loại ID
Tôi muốn đếm số bài đăng thuộc một danh mục (Để tránh xóa danh mục có bài đăng)
Giải pháp của tôi là thế này:
lớp PostDP{
chuỗi riêng entityTypeId = 'entity_post';
riêng tư EntityTypeManagerInterface $em;
hàm công khai __construct(EntityTypeManagerInterface $em)
{
$this->em = $em;
}
hàm công khai getByCategoryId(int $categoryId): mảng
{
$query = $this->em->getStorage($this->entityTypeId)->getQuery();
$query->condition('category_id', $categoryId, '=');
$result = $query->execute();
$posts = $this->em->getStorage($this->entityTypeId)->loadMultiple($result);
trả lại bài đăng $;
}
}
Không có cách nào khác để chỉ đếm mà không cần tải tất cả các bài viết?
Trên thực tế, tôi muốn bắt đầu từ Loại
thực thể và chỉ cần kiểm tra số lượng bài đăng có liên quan đến một danh mục nhất định.
Giống như trong ví dụ (không đầy đủ) này:
lớp Thể loạiDP{
chuỗi riêng entityTypeId = 'entity_category';
riêng tư EntityTypeManagerInterface $em;
hàm công khai __construct(EntityTypeManagerInterface $em)
{
$this->em = $em;
}
hàm công khai getCountPosts(int $categoryId): mảng
{
$query = $this->em->getStorage($this->entityTypeId)->getQuery();
/**
*@todo Nhận số lượng bài viết
* Xây dựng truy vấn thực thi SQL:
*
* LỰA CHỌN
* đếm(*)
* TỪ
* danh mục c TRÁI THAM GIA bài p
* TRÊN
* p.category_id = c.id
* Ở ĐÂU
* c.id = :categoryId
*/
trả lại số tiền $;
}
}