Tôi đã cập nhật Drupal của mình từ 8 lên 9 và sử dụng PHP 7.4. Bây giờ tôi đã chọn thời gian để cập nhật lên PHP 8. Mọi thứ chạy cho đến nay, chỉ với một mô-đun tự xây dựng, tôi nhận được thông báo Lỗi:
Trang web này gặp phải một lỗi không mong muốn. Vui lòng thử lại sau.
Lỗi: Cố gán "định dạng" thuộc tính thành null trong copy_fields_from_model_contract_node_edit_node_prepare_form() (dòng 57 của mô-đun/tùy chỉnh/copy_fields_from_model_contract_node_edit/copy_fields_from_model_contract_node_edit.module).
Điều này liên quan chính xác đến dòng này:
$node->body->format = 'full_html';
Mã của mô-đun của tôi không thanh lịch, nhưng nó đã hoạt động như mong muốn. Về cơ bản, tôi sao chép từ một nút khác nội dung của trường nội dung vào trường nội dung của một nút khác. Mã của toàn bộ mô-đun trông như thế này:
<?php
sử dụng Drupal\node\NodeInterface;
sử dụng Drupal\Core\Form\FormStateInterface;
/**
* Triển khai hook_ENTITY_TYPE_prepare_form() cho các thực thể nút.
*/
chức năng copy_fields_from_model_contract_node_edit_node_prepare_form(NodeInterface $node, $operation, FormStateInterface $form_state)
{
// TODO Xây dựng NID dưới dạng mảng và đi qua vòng lặp
$arr_vertraege = mảng(6766, 6769, 6768, 6775, 6767, 6776, 6777, 6778, 6779, 6780, 6781, 6782);
foreach ($arr_vertraege as $mustervertraege) {
$nid = $mustervertraege;
$node_storage = \Drupal::entityTypeManager()->getStorage('node');
$node = $node_storage->load($nid);
if ($nid == $mustervertraege) {
$getcontract = $node->field_vertragsinhalt->value;
}
//TODO Hoạt động mà không cần ($operation == 'default')
nếu ($thao tác == 'chỉnh sửa') {
/*dpm("Mô-đun chỉnh sửa");*/
// TODO Sẽ luôn kéo nút hiện tại và nid. Nhưng chưa hoạt động với việc tạo nút. Lỗi: Gọi hàm thành viên id() trên null trong
$node = \Drupal::routeMatch()->getParameter('node');
$nid = $node->id();
$node_storage = \Drupal::entityTypeManager()->getStorage('node');
$node = $node_storage->load($nid);
if ($node->getType() == 'buch_anlegen') {
if ($node->field_vertrag_updaten->value == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nút);
nếu ($mustervertraege == $arr_vertraege[0]) {
$node->field_vertragsinhalt->value = $getcontract;
$node->body->format = 'full_html';
// chưa lưu nút, nó sẽ được lưu sau khi gửi
}
}
if ($node->field_vertrag_updaten_2->value == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nút);
nếu ($mustervertraege == $arr_vertraege[1]) {
$node->field_vertragsinhalt_2->value = $getcontract;
$node->body->format = 'full_html';
// chưa lưu nút, nó sẽ được lưu sau khi gửi
}
}
if ($node->field_vertrag_updaten_3->value == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nút);
if ($mustervertraege == $arr_vertraege[2]) {
$node->field_vertragsinhalt_3->value = $getcontract;
$node->body->format = 'full_html';
// chưa lưu nút, nó sẽ được lưu sau khi gửi
}
}
if ($node->field_vertrag_updaten_4->value == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nút);
nếu ($mustervertraege == $arr_vertraege[3]) {
$node->field_vertragsinhalt_4->value = $getcontract;
$node->body->format = 'full_html';
// chưa lưu nút, nó sẽ được lưu sau khi gửi
}
}
if ($node->field_vertrag_updaten_5->value == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nút);
nếu ($mustervertraege == $arr_vertraege[4]) {
$node->field_vertragsinhalt_5->value = $getcontract;
$node->body->format = 'full_html';
// chưa lưu nút, nó sẽ được lưu sau khi gửi
}
}
if ($node->field_vertrag_updaten_6->value == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nút);
nếu ($mustervertraege == $arr_vertraege[5]) {
$node->field_vertragsinhalt_6->value = $getcontract;
$node->body->format = 'full_html';
// chưa lưu nút, nó sẽ được lưu sau khi gửi
}
}
if ($node->field_vertrag_updaten_7->value == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nút);
nếu ($mustervertraege == $arr_vertraege[6]) {
$node->field_vertragsinhalt_7->value = $getcontract;
$node->body->format = 'full_html';
// chưa lưu nút, nó sẽ được lưu sau khi gửi
}
}
if ($node->field_vertrag_updaten_8->value == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nút);
nếu ($mustervertraege == $arr_vertraege[7]) {
$node->field_vertragsinhalt_8->value = $getcontract;
$node->body->format = 'full_html';
// chưa lưu nút, nó sẽ được lưu sau khi gửi
}
}
if ($node->field_vertrag_updaten_9->value == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nút);
nếu ($mustervertraege == $arr_vertraege[8]) {
$node->field_vertragsinhalt_9->value = $getcontract;
$node->body->format = 'full_html';
// chưa lưu nút, nó sẽ được lưu sau khi gửi
}
}
if ($node->field_vertrag_updaten_10->value == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nút);
nếu ($mustervertraege == $arr_vertraege[9]) {
$node->field_vertragsinhalt_10->value = $getcontract;
$node->body->format = 'full_html';
// chưa lưu nút, nó sẽ được lưu sau khi gửi
}
}
if ($node->field_vertrag_updaten_11->value == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nút);
if ($mustervertraege == $arr_vertraege[10]) {
$node->field_vertragsinhalt_11->value = $getcontract;
$node->body->format = 'full_html';
// chưa lưu nút, nó sẽ được lưu sau khi gửi
}
}
if ($node->field_vertrag_updaten_12->value == '1') {
// dpm($node->field_vertrag_updaten->value);
//var_dump($nút);
if ($mustervertraege == $arr_vertraege[11]) {
$node->field_vertragsinhalt_12->value = $getcontract;
$node->body->format = 'full_html';
// chưa lưu nút, nó sẽ được lưu sau khi gửi
}
}
}
}
}
}
Có ai có một mẹo cho tôi? Tôi sẽ rất biết ơn.
Chào Bavra
P.S.: Hoàn thành thông báo lỗi từ nhật ký:
Lỗi Thông báo: Cố gán "định dạng" thuộc tính trên null trong copy_fields_from_model_contract_node_edit_node_prepare_form() (dòng 57 của /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/modules/custom/copy_fields_from_model_contract_node_edit/copy_fields_from_model_backup-node_edit.module)
#0 [hàm nội bộ]: copy_fields_from_model_contract_node_edit_node_prepare_form(Object(Drupal\node\Entity\Node), 'chỉnh sửa', Object(Drupal\Core\Form\FormState))
#1 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/Entity/EntityForm.php(397): call_user_func_array('copy_fields_fro...', Array)
#2 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/Entity/EntityForm.php(129): Drupal\Core\Entity\EntityForm->prepareInvokeAll(' node_prepare_fo...', Đối tượng (Drupal\Core\Form\FormState))
#3 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/Entity/ContentEntityForm.php(287): Drupal\Core\Entity\EntityForm->init(Object (Drupal\Core\Form\FormState))
#4 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/Entity/EntityForm.php(96): Drupal\Core\Entity\ContentEntityForm->init(Object (Drupal\Core\Form\FormState))
#5 [chức năng nội bộ]: Drupal\Core\Entity\EntityForm->buildForm(Array, Object(Drupal\Core\Form\FormState))
#6 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/Form/FormBuilder.php(531): call_user_func_array(Array, Array)
#7 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/Form/FormBuilder.php(278): Drupal\Core\Form\FormBuilder->retrieveForm(' node_buch_anleg...', Đối tượng (Drupal\Core\Form\FormState))
#8 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/Controller/FormController.php(73): Drupal\Core\Form\FormBuilder->buildForm(Object (Drupal\node\NodeForm), Đối tượng(Drupal\Core\Form\FormState))
#9 [chức năng nội bộ]: Drupal\Core\Controller\FormController->getContentResult(Object(Symfony\Component\HttpFoundation\Request), Object(Drupal\Core\Routing\RouteMatch))
#10 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(123): call_user_func_array(Array, Array)
#11 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/Render/Renderer.php(564): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core \EventSubscriber\{đóng}()
#12 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(124): Drupal\Core\Render\Renderer->executeInRenderContext(Object (Drupal\Core\Render\RenderContext), Đối tượng (Đóng cửa))
#13 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/EventSubscriber/EarlyRenderingControllerWrapperSubscriber.php(97): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array , Mảng)
#14 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/vendor/symfony/http-kernel/HttpKernel.php(158): Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->Drupal\Core\EventSubscriber\{ Khép kín}()
#15 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/vendor/symfony/http-kernel/HttpKernel.php(80): Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object(Symfony\Component \HttpFoundation\Yêu cầu), 1)
#16 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/modules/contrib/redirect_after_login/src/RedirectMiddleware.php(46): Symfony\Component\HttpKernel\HttpKernel->handle(Object(Symfony \Thành phần\HttpFoundation\Yêu cầu), 1, đúng)
#17 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/StackMiddleware/Session.php(58): Drupal\redirect_after_login\RedirectMiddleware->handle(Object(Symfony) \Thành phần\HttpFoundation\Yêu cầu), 1, đúng)
#18 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/StackMiddleware/KernelPreHandle.php(48): Drupal\Core\StackMiddleware\Session->handle(Object (Symfony\Component\HttpFoundation\Request), 1, đúng)
#19 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(106): Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object (Symfony\Component\HttpFoundation\Request), 1, đúng)
#20 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/modules/page_cache/src/StackMiddleware/PageCache.php(85): Drupal\page_cache\StackMiddleware\PageCache->pass(Object (Symfony\Component\HttpFoundation\Request), 1, đúng)
#21 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/modules/ban/src/BanMiddleware.php(50): Drupal\page_cache\StackMiddleware\PageCache->handle(Object(Symfony \Thành phần\HttpFoundation\Yêu cầu), 1, đúng)
#22 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/StackMiddleware/ReverseProxyMiddleware.php(48): Drupal\ban\BanMiddleware->handle(Object(Symfony \Thành phần\HttpFoundation\Yêu cầu), 1, đúng)
#23 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/StackMiddleware/NegotiationMiddleware.php(51): Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object (Symfony\Component\HttpFoundation\Request), 1, đúng)
#24 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/vendor/stack/builder/src/Stack/StackedHttpKernel.php(23): Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object(Symfony \Thành phần\HttpFoundation\Yêu cầu), 1, đúng)
#25 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/core/lib/Drupal/Core/DrupalKernel.php(708): Stack\StackedHttpKernel->handle(Object(Symfony\Component\HttpFoundation \Yêu cầu), 1, đúng)
#26 /home/bavramor/data/Webdesign/Webseiten/landwehrcie-backup-drupal9/web/index.php(19): Drupal\Core\DrupalKernel->handle(Object(Symfony\Component\HttpFoundation\Request))
#27 {chính}