RuntimeException: Không thể xác định lớp cho loại trường được tìm thấy trong cấu hình


11

Trang web của tôi đã gặp lỗi này, trong khi cập nhật từ Drupal 8.3.7 lên Drupal 8.4.0 và tôi không thể giải quyết nó.

Trang web này gặp phải một lỗi không mong muốn. Vui lòng thử lại sau. RuntimeException: Không thể xác định lớp cho loại trường 'webform' được tìm thấy trong cấu hình 'field.st Storage.node.webform' trong Drupal \ field \ FieldStorageConfigStorage-> mapFromStorageRecords () (dòng 157 của core / module / field / src php).


Tôi nghĩ rằng điều này không được kết nối với phiên bản D8. Có thể tất cả các phiên bản sẽ báo cáo cùng một lỗi khi bạn có một trường được định cấu hình trong một loại nội dung nơi không thể tìm thấy mã cho loại trường.
4k4

Câu trả lời:


34

Một cách có thể là mô-đun của bạn bị thiếu trong cơ sở mã hoặc đã được gỡ cài đặt không đúng cách và bạn vẫn còn một trường đang sử dụng mô-đun bị thiếu đó.

Hãy thử các drushlệnh / SQL sau để loại bỏ trường bị hỏng:

drush sqlq "DELETE FROM cache_config"
drush sqlq "DELETE FROM config WHERE name = 'field.storage.xxx.xxx' OR data LIKE '%field.storage.xxx.xxx%'"
drush sqlq "DELETE FROM config_snapshot  WHERE name = 'field.storage.xxx.xxx' OR data LIKE '%field.storage.xxx.xxx%'"

Cảnh báo : Không thực hiện các lệnh trên trên cơ sở dữ liệu chủ / trực tiếp. Tạo một bản sao lưu trước khi thực hiện bất kỳ thay đổi cơ sở dữ liệu.

field.storage.xxx.xxxLoại lưu trữ trường được báo cáo của bạn ở đâu (ví dụ field.storage.node.webform).

Nếu ở trên sẽ không giúp đỡ, hãy kiểm tra bất kỳ tài liệu tham khảo nào khác bằng cách:

drush sql-dump --ordered-dump | grep field.storage.xxx.xxx

Cuối cùng, bạn cần xây dựng lại bộ nhớ cache của mình:

drush cr

1
Cảm ơn bạn rất nhiều cho giải pháp. Nó chắc chắn sẽ giúp.

1
Đây hoàn toàn nên là câu trả lời được chấp nhận
Mrweiner

Cảm ơn @kenorb cho câu trả lời tuyệt vời này. +1
Beto Aveiga

2

Tôi đã có một lỗi tương tự với một mô-đun khác (địa chỉ trong trường hợp của tôi). Tôi có thể sửa nó bằng cách cài đặt lại mô-đun liên quan bằng bàn điều khiển drupal bằng lệnh sau:

drupal module:install address

Và quay lại kinh doanh :)


+1 có tôi thấy điều này cũng hoạt động.
trị liệu

Tôi đã cài đặt lại với composer require drupal/address - như một người khác đã làm ở đây: drupal.org/project/address/issues/2868049#comment-12044874
trị liệu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.