Điểm:0

Làm cách nào để đặt trường tham chiếu thực thể tùy chỉnh của cờ theo chương trình khi đặt cờ theo chương trình?

lá cờ pe

Một số thông tin cơ bản: Tôi chưa quen với việc xây dựng mô-đun 8/9 của Drupal. Tôi cần tự động gắn cờ các nút của một loại nội dung cụ thể. Tôi làm việc này bằng cách sử dụng mã bên dưới. Tuy nhiên, cờ liên quan cũng có trường tùy chỉnh mà tôi cần đặt.

  • Đó là một trường tham chiếu thực thể (đến một nút khác)
  • Tôi muốn đặt trường tham chiếu đối tượng tùy chỉnh của cờ có cùng giá trị với trường tham chiếu thực thể trên nút được gắn cờ.

(Điều này có vẻ lạ. Có thể có cách tốt hơn để hoàn thành các mục tiêu UX. Tôi vẫn muốn biết cách thực hiện.)

'rf_tweaks' là tên máy mô-đun, 'research_note' là loại nội dung nút và 'research_item' là tên của cờ.

sử dụng Drupal\node\Entity\Node;

chức năng rf_tweaks_node_insert(Node $node) {
  if ($node->bundle() == 'research_note'){
 $flag = \Drupal::entityTypeManager()->getStorage('flag')->load('research_item');
 \Drupal::service('flag')->flag($flag, $node);
}
}

Có một số thông tin tuyệt vời tại gắn cờ trang api, nhưng các phương pháp khác nhau đến mức tôi không rõ làm thế nào để điều chỉnh chúng cho phù hợp với tình huống này.

Điểm:1
lá cờ cn

Phương thức trong dòng mã cuối cùng của bạn trả về thực thể "gắn cờ", đại diện cho mối quan hệ thực thể/cờ. Đó là điều bạn cần để thiết lập lĩnh vực này. ví dụ.

$flag = \Drupal::entityTypeManager()->getStorage('flag')->load('research_item');
$flagging = \Drupal::service('flag')->flag($flag, $node);

$flagging->field_foo->target_id = $node->field_bar->target_id;
$flagging->save();

Điều đó liên quan đến việc thực thể gắn cờ được lưu hai lần, vì vậy nếu hiệu suất trở thành vấn đề, bạn có thể cần phải tạo một gắn cờ thực thể theo cách thủ công và lưu nó để tránh bị đánh hai lần.

lá cờ pe
Làm việc cho tôi. Nhiều đánh giá cao!
lá cờ pe
Tôi đã thêm mã nhận xét để cố gắng hiểu điều gì đang xảy ra... chủ yếu là cho giáo dục của riêng tôi. Hai câu hỏi: 1. Tôi hiểu đúng không? 2. Chúng tôi sử dụng ->save() để thêm giá trị trường, thay vì sử dụng dịch vụ gắn cờ vì sử dụng dịch vụ sẽ tạo ra một dấu hiệu gắn cờ khác thay vì thay đổi giá trị hiện tại?

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