Điểm:2

Loại bỏ kết quả khỏi mối quan hệ (thêm điều kiện BẬT để THAM GIA)

lá cờ de

Tôi cần thêm điều kiện BẬT vào chế độ xem THAM GIA. Tôi không thể sử dụng bộ lọc theo ngữ cảnh vì nó sẽ lọc ra các kết quả hoàn toàn và tôi cần nhận được kết quả bất kể (có các phép nối khác). Vì vậy, tôi cần đảm bảo bộ lọc xảy ra khi THAM GIA chứ không phải dưới dạng điều kiện WHERE.

Cụ thể hơn, tôi muốn hiển thị một giá trị khi không có mối quan hệ nào tồn tại. Mối quan hệ là từ một loại NODE này sang một loại NODE khác cùng loại và tôi không muốn truy xuất nút hiện tại. Vì vậy, điều kiện BẬT phải là VÀ join_table.id != original_table.id.

Tôi chưa quen với việc thay đổi truy vấn lượt xem. Bất kỳ ai cũng có thể cung cấp hỗ trợ về cách thêm điều kiện BẬT vào truy vấn Chế độ xem thông qua giao diện người dùng quản trị (nếu có thể) hoặc thông qua thay đổi truy vấn?

Cảm ơn bạn

sonfd avatar
lá cờ in
Không giúp đỡ à? https://drupal.stackexchange.com/a/251700/48114
Jaypan avatar
lá cờ de
Hầu như, nhưng không. Nó cho biết cách thêm một điều kiện 'BẬT', nhưng điều kiện này dành cho một giá trị cố định, trong đó tôi điều kiện nằm trên một cột khác của bảng.
sonfd avatar
lá cờ in
Bạn có thể sử dụng một số tùy chọn khác được liệt kê tại đây không: https://api.drupal.org/api/drupal/core%21modules%21views%21src%21Plugin%21views%21join%21JoinPluginBase.php/property/JoinPluginBase%3A%3Aextra /8.2.x
Jaypan avatar
lá cờ de
Cảm ơn bạn đã cung cấp thông tin bổ sung. Tôi đã chơi với nó một lúc, nhưng tôi không thấy bất kỳ sự kết hợp nào cho phép tôi lấy đúng bảng và cột được tham chiếu trong truy vấn, đặc biệt là khi `giá trị` là bắt buộc, nhưng tôi không làm việc với một giá trị, tôi Tôi đang làm việc với một tên cột.
Điểm:3
lá cờ de

Nhờ sự giúp đỡ từ sonfd ở trên, tôi đã có thể đưa ra một giải pháp. Tôi không thể so sánh hai cột như tôi đang cố gắng, nhưng tôi có thể sử dụng $view->args để đạt được kết quả mà tôi mong muốn.

Để trả lời câu hỏi về cách thêm điều kiện BẬT bổ sung để THAM GIA, bạn có thể thực hiện như sau:

function HOOK_views_query_alter(ViewExecutable $view, QueryPluginBase $query) {
  if ($view->id() == VIEW_ID && $view->current_display === DISPLAY_ID) {
    $table = $query->getTableInfo(TABLE_NME);
    $table['join']->extra = trống($table['join']->extra) ? [] : $table['join']->extra;
    $table['join']->extra[] = [
      'trường' => FIELD_NAME,
      'toán tử' => '!=',
      'giá trị' => GIÁ TRỊ, // Trong trường hợp của tôi là $view->args[0],
    ];
  }
}

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