Điểm:0

Làm cách nào để loại bỏ hoàn toàn một trường?

lá cờ sa

Tôi đã xóa một trường khỏi gói (trường này không được sử dụng ở nơi nào khác) bằng cách sử dụng giao diện người dùng đồ họa.

Nhưng nó vẫn được liệt kê khi tôi chạy lệnh sau (sau khi xóa bộ đệm)

$this->entityFieldManager->getFieldDefinitions('node', $bundle); 

Tôi nên làm gì để loại bỏ hoàn toàn nó (vì tôi sử dụng lệnh trước để hiển thị một số danh sách)

chỉnh sửa để thêm:

Theo đề xuất của Clive, tôi đã chạy trường_cron() không thành công. Nhìn vào mã của chức năng này, tôi đã thử đoạn mã sau để có thêm thông tin:

$deleted_fields_repository = \Drupal::service('entity_field.deleted_fields_repository');
$fields = $deleted_fields_repository->getFieldDefinitions(NULL);

Như bạn có thể tưởng tượng, trường $ trống rỗng. Có lẽ một số loại tham nhũng?

chỉnh sửa để thêm 2

Theo đề xuất của 4k4, tôi đã chạy mã này:

$field_storage = \Drupal\field\Entity\FieldStorageConfig::loadByName('node', 'the_field_that_must_be_deleted');
dpm($field_storage->get('persist_with_no_fields'));

Và kết quả là SAI

Do đó, câu hỏi đặt ra là: làm cách nào để xóa trường theo cách thủ công?

4uk4 avatar
lá cờ cn
Có thể bộ nhớ trường được đánh dấu làpersist_with_no_fields, có nghĩa là bộ nhớ này sẽ tồn tại ngay cả khi không còn được sử dụng trong bất kỳ gói nào.
Baud avatar
lá cờ sa
@4k4: Tôi đã cập nhật câu hỏi của mình: có vẻ như không phải vậy
Điểm:0
lá cờ cn

Thông thường, bạn sẽ chỉ chạy cron cho việc này, bởi vì trường_cron() xóa dữ liệu đã xóa.

Nếu bạn cần thực hiện thủ công vì bất kỳ lý do gì, bạn có thể gọi trường_purge_batch() thủ công.

Baud avatar
lá cờ sa
Cảm ơn bạn. Có vẻ như đó là câu trả lời đúng nhưng không hữu ích trong trường hợp của tôi. Tôi đã cập nhật câu hỏi của mình.

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