Điểm:0

Sử dụng hook_entity_presave để chuyển đổi nhiều dòng trong một trường thành các giá trị riêng biệt trong trường đa giá trị?

lá cờ cn

Tôi có một trường được xác định là 'văn bản dài' cho phép vô số giá trị. Khó khăn là người dùng đang nhập mọi thứ trong một lần lặp lại trường.Vì vậy, tôi cần lấy giá trị họ đã nhập, tách nó ra và tạo các mục nhập trường đa giá trị riêng biệt. Nhưng ... cách tiếp cận của tôi không hiệu quả:

hàm builder2020_entity_presave(EntityInterface $entity){
  switch ($entity->bundle()) {
    trường hợp 'ec_topics':
      $count = count($entity->field_ec_subtopics);//kiểm tra xem người dùng có chỉ sử dụng một trường không
      if ($count == 1){ //người dùng đã đặt mọi thứ vào một giá trị trường
        $values ​​= mảng(explode('\n',$entity->field_ec_subtopics->value)); tạo mảng từ giá trị trường
          $entity->field_subtopics->value = $values; //nạp mảng vào trường
      }
      $entity->field_sub_topic_count->value = $count; // đặt số lượng ec_topics
      nghỉ;

Tôi 'nghĩ' mình đã đến gần, nhưng dường như tôi không thể biết mình đang rơi xuống đâu.

lá cờ cn
Xem https://www.php.net/manual/en/lingu.types.string.php#lingu.types.string.syntax.single
gmak avatar
lá cờ cn
@Clive Tôi có thể thấy những gì bạn đang đề xuất, rằng '\ n' sẽ không được tìm thấy trong câu lệnh phát nổ () và tôi nên sử dụng "\ n". Tuy nhiên, khi tôi làm điều đó, tôi vẫn không nhận được kết quả như mong đợi. Trong mọi trường hợp, có vẻ như phát nổ () không hoạt động.
gmak avatar
lá cờ cn
Tôi nhận ra rằng tôi đã nhầm 'dấu gạch chéo' trong nhận xét ở trên. Họ đúng trong mã của tôi.
Điểm:0
lá cờ cn
trường hợp 'ec_topics':
      $count = count($entity->field_ec_subtopics);
      nếu ($count == 1){
        $values ​​= $entity->field_ec_subtopics->getValue();
        $content = $values[0]['value'];
        $items = phát nổ(PHP_EOL,$content);
        $count = count($items);
        $entity->field_ec_subtopics = $items;
      }
      $entity->field_sub_topic_count->value = $count;
      nghỉ;

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