Điểm:0

Nhận số lượng các thực thể liên quan

lá cờ ye

Tôi có hai thực thể, Bưu kiệnLoạ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 $;
  }
}
Kevin avatar
lá cờ in
https://www.drupal.org/docs/8/api/database-api/dynamic-queries/count-queries
berramou avatar
lá cờ gb
`$count = $query->count()->execute();`
Dylan avatar
lá cờ kr
Đây cũng là một tùy chọn - https://www.drupal.org/project/entity_usage

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.