Điểm:0

Cách cập nhật trường tham chiếu thực thể đa giá trị theo chương trình

lá cờ fr

Tôi có hai Loại nội dung nút loại_aloại_b Tôi có một trường được gọi là trường_tác_giả Trong loại_a đó là trường tham chiếu thực thể đến loại_b với số lượng không giới hạn.

Làm cách nào để cập nhật trường_tác_giả theo chương trình.

Tôi cũng cần Kiểm tra xem giá trị đã tồn tại trong trường chưa, nếu tồn tại thì hãy thêm giá trị mới trong khi cập nhật giá trị trường nếu không thì chỉ cần gán giá trị.

Tôi đã thử các biến thể dưới đây nhưng có vẻ như không có biến thể nào hoạt động.

$author_object->set('field_author_profile', $author_profile_nid);

$author_object->field_author_profile = ['target_id' => $author_profile_nid];

$author_object->field_author_profile->entity->target_id->value = $author_profile_nid;

$author_object->field_author_profile[] = ['target_id' => $author_profile_nid];

$author_object->field_author_profile->target_id = $author_profile_nid;

$author_object->get('field_author_profile')->setValue(['target_id' => $author_profile_nid]);

Đã lưu nút sau này bằng cách sử dụng

$author_object->save();

Chỉnh sửa : Giá trị trường không được hiển thị trong biểu mẫu chỉnh sửa nút, thậm chí còn được cho là có trong cơ sở dữ liệu. Đó là do loại gói được chọn sai trong trường tham chiếu thực thể. Sau khi nó được sửa chữa, nó hoạt động như mong đợi.

Đây là giải pháp làm việc.

$author_object->field_author_profile[] = ['target_id' => $author_profile_nid];
miststudent2011 avatar
lá cờ fr
Liên quan https://drupal.stackexchange.com/questions/213379/programmatically-update-an-entity-reference-field
lá cờ cn
Ví dụ thứ 4 của bạn là đúng. Nó cũng là thứ duy nhất không sử dụng `field_author_profile`, đây có thể là vấn đề
miststudent2011 avatar
lá cờ fr
@Clive, Cảm ơn bạn đã phản hồi. Đó là một lỗi đánh máy sửa nó.

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