Điểm:2

Làm cách nào tôi có thể nắm bắt cấu hình và lưu trữ của một trường để tôi có thể xóa rồi tạo lại?

lá cờ pl

Tôi đang cố gắng thực hiện điều này trong một hook_update_N() nhưng tôi không chắc nó đúng (xem đoạn trích bên dưới). Lưu ý rằng tôi đang thay đổi max_length trong quá trình này.

Điều tôi đang cố gắng thực hiện: cập nhật my_custom_entity.field_my_custom_field đã lưu dữ liệu vào đó. Vì vậy, tôi cần phải:

  1. Lưu trữ dữ liệu đó
  2. Lưu cấu hình trường - nếu có thể?
  3. Lưu trữ trường lưu trữ - nếu điều đóâ là có thể?
  4. Xóa trường
  5. Tạo lại trường bằng cấu hình và lưu trữ được lưu trữ
  6. Khôi phục dữ liệu đã lưu
  // Nắm bắt các cấu hình trường hiện có.
  $field = FieldConfig::loadByName($entity_type, $bundle, $field_name);
  $new_field = $field->toArray();
  $new_field['field_type'] = 'chuỗi';
  $new_field['settings'] = [];

  // Ghi lại bộ lưu trữ trường hiện có.
  $new_field_storage = $field_storage->toArray();
  $new_field_storage['type'] = 'chuỗi';
  $new_field_storage['settings'] = [
    'max_length' => $field_length,
    'is_ascii' => SAI,
    'case_sensitive' => FALSE,
  ];

  // Xóa trường hiện có + lưu trữ trường và lọc dữ liệu.
  $field_storage->delete();
  field_purge_batch(150);

  // Tạo trường mới bằng cách sử dụng cấu hình/settings đã chụp.
  $new_field_storage = FieldStorageConfig::create($new_field_storage);
  $new_field_storage->save();

  $new_field = FieldConfig::create($new_field);
  $new_field->save();

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