Điểm:0

Cách sử dụng thay đổi truy vấn lượt xem để hiển thị nội dung được lọc theo thẻ

lá cờ in

Tôi chưa quen với Drupal và bắt đầu học móc. tôi đang cố gắng sử dụng hook_views_query_alter để hiển thị nội dung liên quan cho người dùng theo các thẻ ưa thích của nó.

hàm liên quan_content_views_query_alter(ViewExecutable $view, QueryPluginBase $query) {
  if ($view->id() == 'filtered_content') {
    $user = \Drupal\user\Entity\User::load(\Drupal::currentUser()->id());
    $getPrefTags = $user->get('field_user_tags')->getValue();
    nếu (trống ($ getPrefTags)) trả về;
    
    $prefTags = $getPrefTags[0]['target_id'];
    $nodeid = "node__field_tags.field_tags_target_id";
    $query->addWhere('',$nodeid,$prefTags,'=');
   }
}

Chức năng này đang nhận giá trị của các thẻ ưa thích của người dùng từ hồ sơ của nó và sau đó sử dụng addWhere() để thay đổi truy vấn. Vấn đề là, chức năng này hoạt động tốt nếu người dùng nhập một thẻ nhưng làm cách nào tôi có thể thực hiện việc này nếu người dùng nhập nhiều thẻ. tôi đã thử sử dụng truy vấn-> thêm vào đâu trong vòng lặp để tăng giá trị của $getPrefTags[0] nhưng nó không hoạt động. Làm thế nào tôi có thể đạt được điều này.

lá cờ cn
Có thể đơn giản như thay đổi `$prefTags` thành một mảng và `=` thành `IN`

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