Điểm:0

Đối số 6 được chuyển đến Drupal\layout_builder\Plugin\Block\InlineBlock::__construct() phải triển khai giao diện

lá cờ cn

Tôi đang nâng cấp Drupal 8 lên 9. Tôi đã cài đặt mô-đun 'Trạng thái nâng cấp' và sửa nó theo đề xuất của nó. Bây giờ đã đến lúc nâng cấp lên D9. Tôi đã thay đổi trên composer.json.

"drupal/core-composer-scaffold": "^8.9.0",
"drupal/core-recommended": "^8.9.0",

Đến

"drupal/core-composer-scaffold": "^9.1.0",
"drupal/core-recommended": "^9.1.0",

Sau đó chạy lệnh sau:

cập nhật nhà soạn nhạc
drush cr
drush updb -y

Sau khi chạy bản cập nhật, tôi đã nhận được Drupal 9.2.6. Khi duyệt URL, nó hiển thị lỗi sau:

TypeError: Đối số 6 được chuyển đến Drupal\layout_builder\Plugin\Block\InlineBlock::__construct() phải triển khai giao diện Drupal\Core\Session\AccountInterface, ví dụ về Drupal\Core\Logger\LoggerChannel được cung cấp, được gọi vào /app/web/core/modules/layout_builder/src/Plugin/Block/InlineBlock.php trên dòng 117 trong Drupal\layout_builder\Plugin\Block\InlineBlock->__construct() (dòng 95 của lõi/mô-đun/layout_builder/src/Plugin/Block/InlineBlock.php).

Tôi googled nhưng không thể tìm ra giải pháp. Bất kỳ đề nghị được thực sự đánh giá cao.

Điểm:-2
lá cờ cn

Đó là do các tham số trong hàm tạo

hàm công khai __construct(){}

thay thế

hàm công khai __construct(mảng $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, EntityDisplayRepositoryInterface $entity_display_repository, AccountInterface $current_user){}

với

hàm công khai __construct(mảng $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, EntityDisplayRepositoryInterface $entity_display_repository, LoggerInterface $logger, AccountInterface $current_user = NULL) {}

Những thay đổi là: LoggerInterface $loggerAccountInterface $current_user = NULL trong hàm tạo.

Trong quá trình nâng cấp Drupal lên 9, bạn sẽ thấy một tệp InlineBlock.php.rej (lõi/mô-đun/layout_builder/src/Plugin/Block/InlineBlock.php.rej) cung cấp thông tin chi tiết để khắc phục sự cố.

JFI: Tôi đã thực hiện thay đổi trực tiếp với InlineBlock.php, vui lòng đề xuất nếu có một cách khác để vá nó.

InlineBlock.php.rej tập tin chứa:

***************
***81,90****
     * Dịch vụ quản lý kiểu thực thể.
     * @param \Drupal\Core\Entity\EntityDisplayRepositoryInterface $entity_display_repository
     * Kho lưu trữ hiển thị thực thể.
     * @param \Drupal\Core\Session\AccountInterface $current_user
     * Người dùng hiện tại.
     */
- hàm công khai __construct(mảng $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, EntityDisplayRepositoryInterface $entity_display_repository, AccountInterface $current_user = NULL) {
      cha mẹ::__construct($configuration, $plugin_id, $plugin_definition);
  
      $this->entityTypeManager = $entity_type_manager;
--- 89.100 ----
     * Dịch vụ quản lý kiểu thực thể.
     * @param \Drupal\Core\Entity\EntityDisplayRepositoryInterface $entity_display_repository
     * Kho lưu trữ hiển thị thực thể.
+ * @param \Psr\Log\LoggerInterface $logger
+ * Phiên bản nhật ký.
     * @param \Drupal\Core\Session\AccountInterface $current_user
     * Người dùng hiện tại.
     */
+ hàm công khai __construct(mảng $configuration, $plugin_id, $plugin_definition, EntityTypeManagerInterface $entity_type_manager, EntityDisplayRepositoryInterface $entity_display_repository, LoggerInterface $logger, AccountInterface $current_user = NULL) {
      cha mẹ::__construct($configuration, $plugin_id, $plugin_definition);
  
      $this->entityTypeManager = $entity_type_manager;
***************
*** 98,103 ****
        $current_user = \Drupal::currentUser();
      }
      $this->currentUser = $current_user;
    }
  
    /**
---108,118----
        $current_user = \Drupal::currentUser();
      }
      $this->currentUser = $current_user;
+ nếu (!$logger) {
+ @trigger_error('Dịch vụ ghi nhật ký phải được chuyển tới InlineBlock::__construct(). Dịch vụ này đã được thêm vào trong drupal:9.2.0 và sẽ được yêu cầu trước drupal:10.0.0.', E_USER_DEPRECATED);
+ $logger = \Drupal::service('logger.channel.layout_builder');
+ }
+ $this->logger = $logger;
    }
  
    /**

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