Điểm:6

Tôi nên sử dụng phương pháp nào thay vì Drupal\Core\Entity\Query\Sql\Query::addExpression()?

lá cờ my

Tôi đang sử dụng Truy vấn thực thể để chọn các nút thuộc hai loại khác nhau. Quá trình tìm nạp dường như đang hoạt động, nhưng tôi sắp xếp các giá trị được trả về. Cả hai loại nội dung đều có các trường ngày khác nhau. Tôi biết tôi có thể làm điều này với $query->addExpression('COALESCE( field_date_1, field_date_2)', 'Date'); $query->sort('Ngày', 'DESC'); nhưng addExpression() không phải là một phương pháp hiện có và mã sẽ đưa ra ngoại lệ này.

Lỗi: Gọi phương thức không xác định Drupal\Core\Entity\Query\Sql\Query::addExpression()

Làm cách nào tôi có thể sắp xếp trên hơn 2 trường ngày?

Điểm:6
lá cờ cn

Truy vấn thực thể không hỗ trợ biểu thức. Để có được nó xung quanh nó, hãy thêm một thẻ vào truy vấn:

$query->addTag('mymodule');

Sau đó thực hiện hook_query_alter(), hãy kiểm tra thẻ và thay vào đó hãy thêm biểu thức vào đó:

function mymodule_query_alter(Drupal\Core\Database\Query\AlterableInterface $query) {
  if ($query instanceof Drupal\Core\Database\Query\SelectInterface && $query->hasTag('mymodule')) {
    $query->addExpression('...');
  }
}
Akansha avatar
lá cờ my
Cảm ơn, nó đã hoạt động và hook_query_TAG_alter() cũng hoạt động ở đây. Thêm để tham khảo trong tương lai.

Đă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.