Điểm:0

Cách lọc kết quả entity_autocomplete theo loại nội dung và trường

lá cờ ng

Tôi đang cố triển khai trường tự động hoàn thành của thực thể trong biểu mẫu trong đó các thực thể tự động hoàn thành được lọc theo loại nội dung và một trường nhất định của loại nội dung đó.

Tôi biết tôi có thể lọc tự động hoàn thành bằng cách sử dụng target_bundles bên trong #selection_settings

'#selection_handler' => 'mặc định',
'#selection_settings' => [
  'target_bundles' => ['my_content_type'],
]

Nhưng tôi vẫn chưa biết cách lọc thêm theo trường trong loại nội dung này. Từ những gì tôi tìm thấy, tôi có thể thêm 'bộ lọc' => ['tên_trường_của_tôi' => 'giá_trị_của_tôi'], đến #selection_settings. Nhưng sau đó tôi sẽ phải sử dụng một tùy chỉnh #selection_handler.

Tôi đã tìm thấy ví dụ này trực tuyến về việc triển khai plugin trình xử lý lựa chọn.

<?php

không gian tên Drupal\test_module_name\Plugin\EntityReferenceSelection;

sử dụng Drupal\node\Plugin\EntityReferenceSelection\NodeSelection;

/**
 * Cung cấp kiểm soát truy cập cụ thể cho loại thực thể nút.
 *
 * @EntityReferenceSelection(
 * id = "mặc định:node_by_field",
 * nhãn = @Translation("Lựa chọn nút theo trường"),
 * entity_types = {"nút"},
 * nhóm = "mặc định",
 * trọng lượng = 3
 * )
 */
lớp NodeByFieldSelection mở rộng NodeSelection {

  /**
   * {@inheritdoc}
   */
  hàm được bảo vệ buildEntityQuery($match = NULL, $match_operator = 'CONTAINS') {
    $query = parent::buildEntityQuery($match, $match_operator);
    $handler_settings = $this->configuration['handler_settings'];
    if (!isset($handler_settings['filter'])) {
      trả lại truy vấn $;
    }
    $filter_settings = $handler_settings['filter'];
    foreach ($filter_settings as $field_name => $value) {
      $query->condition($field_name, $value, '=');
    }
    trả lại truy vấn $;
  }

}

Tôi tin rằng trong ví dụ này, họ đang sử dụng một trình xử lý lựa chọn có tên là mặc định: node_by_field. Tôi hoàn toàn mới với các plugin nhưng đã quen thuộc với các mô-đun. Tôi cảm thấy mình rất gần. Cảm ơn cho bất kỳ hướng dẫn.

lá cờ ru
Bất kỳ lý do cụ thể nào bạn không sử dụng mô-đun Chế độ xem? Bạn có thể tạo dạng xem thuộc loại `Tham chiếu thực thể` và sau đó chọn dạng xem (được lọc trước) này làm nguồn cho trường tham chiếu thực thể của bạn.
spacecraft96 avatar
lá cờ ng
Tôi cần biểu mẫu này được tạo hoàn toàn theo chương trình và các chế độ xem dường như không phù hợp với nhu cầu của tôi về vấn đề đó. Vì vậy, tôi muốn giải quyết vấn đề này bằng cách sử dụng các phần tử kết xuất biểu mẫu

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