Điểm:1

Sử dụng trình dẫn xuất trong Drupal Migration yml

lá cờ in

Tôi đang cố gắng sử dụng khóa dẫn xuất trong yml di chuyển để xây dựng di chuyển động cho từng gói của Loại thực thể (Drupal 9).

tôi đọc cái này và tôi đang cố gắng sử dụng khóa dẫn xuất để trỏ đến lớp Dẫn xuất trong quá trình di chuyển của mình. Tuy nhiên, có vẻ như khóa dẫn xuất bị bỏ qua.

Có điều gì khác mà tôi cần làm ngoài việc sử dụng khóa trình dẫn xuất và tạo một lớp dẫn xuất kế thừa từ Drupal\Component\Plugin\Derivative\DeriverBase không?

Đây là yml di chuyển:

id: person_roles
nhãn: Nhập khẩu 
công cụ dẫn xuất: Drupal\my_module\PersonRoleImportDeriver
nhóm_di chuyển: my_group
nguồn:
  plugin: url
  data_fetcher_plugin: http
  data_parser_plugin: xml
  url: công khai://this.xml
  lĩnh vực:
    -
      tên: vị trí_tên
      nhãn: tên vai trò người
      bộ chọn: chức năng
  id:
    Tên vị trí:
      loại: chuỗi
điểm đến:
  plugin: 'thực thể: my_entity'
tiến trình:
  Tên:
    -
      plugin: bỏ qua_on_empty
      phương pháp: hàng
      nguồn: position_name
      thông báo: 'Vai trò người nguồn trống'
    -
      plugin: make_unique_entity_field
      entity_type: my_entity
      đã di cư: đúng
      lĩnh vực: tên
Điểm:1
lá cờ ph

Đó là một plugin, vì vậy bạn cần tôn trọng cấu trúc thư mục và không gian tên của plugin.

Lớp học của bạn nên ở trong my_module/src/Plugin/di chuyển và có không gian tên Drupal\my_module\Plugin\di chuyển.

Stefan Korn avatar
lá cờ in
Hừm, tôi nghĩ Deriver không phải là plugin? Nó không có chú thích mặc dù. Dù sao, nếu tôi đặt Deriver trong thư mục plugin thì có vẻ như nó vẫn chưa được gọi.
Lambic avatar
lá cờ ph
Vì vậy, lớp dẫn xuất của bạn triển khai getDerivativeDefinitions() và phương thức đó không bao giờ được gọi?
Stefan Korn avatar
lá cờ in
Vâng, đó dường như là vấn đề.
Lambic avatar
lá cờ ph
Không chắc tại sao lại như vậy, tôi sử dụng cùng một mẫu. Lớp của bạn có bao gồm MigrationDeriverTrait không?
Stefan Korn avatar
lá cờ in
có vẻ như đó là vị trí của cấu hình yml cho quá trình di chuyển. Nếu nó nằm trong thư mục config/install thì trình dẫn xuất sẽ không bị bắt, nhưng nếu nó nằm trong thư mục di chuyển thì nó sẽ hoạt động. Bản thân lớp Derer có thể sống ở bất kỳ đâu trong không gian tên. Tôi hiện đang hiểu sự khác biệt giữa cấu hình/cài đặt và di chuyển trong trường hợp đó.
Lambic avatar
lá cờ ph
Thật thú vị, chúng tôi đã chuyển sang sử dụng thư mục di chuyển từ khá sớm.

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