Điểm:0

Làm cách nào để sao chép các trường từ thực thể này sang thực thể khác cho các thực thể cùng loại?

lá cờ in
Lia

Tôi có 2 thực thể cùng loại & gói nhưng được sử dụng trong 2 trường hợp khác nhau (được liên kết khác nhau với các thực thể khác nhau). Khi xuất bản thực thể thứ hai, tôi muốn lấy dữ liệu mới và đưa dữ liệu đó vào thực thể 'chính' vì tất cả logic được xây dựng dựa trên thực thể chính và tương tác với các loại nội dung khác.

Những gì tôi có cho đến nay:

 $fields_to_exclude = [
  'Tôi',
  'uuid',
  'video',
];

foreach ($second_entity->getFields() ?: [] as $name => $field) {
  if (!in_array($name, $fields_to_exclude)) {
    $main_entity->set($name, $field->getValue());
  }
}
$main_entity->save();

Có khoảng 120 trường và tôi chỉ cần loại trừ 5-10 trường. Vấn đề của tôi là tôi chỉ muốn nhận các trường được tạo trong giao diện, chẳng hạn như 'field_country_name', 'field_category', v.v. Hàm trên trả về tất cả các trường thực thể (chẳng hạn như ID, UID, v.v.) và có quá nhiều trường cần xem xét. Có cách nào để chỉ lấy 'các trường được tạo tùy chỉnh' không? Tôi không tìm thấy gì trong API Drupal.

Điểm:0
lá cờ in
Lia

Rõ ràng bạn chỉ có thể kiểm tra xem tên trường có chứa từ 'trường' hay không vì nó chỉ dành riêng cho các trường 'được tạo từ giao diện'.

strpos($name, 'field') !== FALSE
lá cờ cn
Đây là một giải pháp hợp lý, nhưng lưu ý rằng có thể chỉnh sửa trường **tên máy** trong giao diện và xóa `field_` khỏi trường đó, vì vậy giải pháp của bạn không đảm bảo rằng tất cả các trường do giao diện người dùng tạo sẽ được tìm thấy.
4uk4 avatar
lá cờ cn
Có, các loại nội dung nút mặc định có phần thân và nhận xét chẳng hạn, có thể định cấu hình giao diện người dùng nhưng không có tiền tố. Bạn nên kiểm tra xem `$field->getFieldDefinition()` có phải là một phiên bản của `\Drupal\field\FieldConfigInterface` hay không. Xem https://drupal.stackexchange.com/questions/278500/get-the-custom-fields-created-for-user-entity-in-drupal8

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