Я пытаюсь добавить здесь локальную задачу (/admin/commerce/orders/{order#}). Эта локальная задача должна содержать представление, которое берет идентификатор пользователя из текущего заказа и отображает историю заказов этого пользователя.
Я считаю, что представление настроено правильно, и я могу успешно добавить здесь локальную задачу (admin/people/%user/orders), добавив следующее в свой файл links.tasks.yml:
custom_module.people.user_orders:
имя_маршрута: view.orders.page_2
base_route: entity.user.canonical
title: 'Заказы'
родитель: entity.user.canonical
вес: 100
Если я перехожу к /admin/people/1/orders, пока эта задача не прокомментирована, я действительно получаю список заказов этого пользователя, а сама вкладка находится в части сайта «Главная»> «Администрирование»> «Люди».
Однако, если я удалю эту локальную задачу и заменю ее следующей, я получу ошибку:
custom_module.commerce_order.user_orders:
имя_маршрута: view.orders.page_2
base_route: entity.commerce_order.canonical
title: 'Заказы'
родитель: entity.commerce_order.canonical
вес: 16
класс: '\Drupal\custom_module\Plugin\Menu\UserOrdersDynamicTab'
UserOrdersDynamicTab.php:
пространство имен Drupal\пользовательский_модуль\Плагин\Меню;
используйте Drupal\Core\Menu\LocalTaskDefault;
используйте Drupal\Core\Routing\RouteMatchInterface;
класс UserOrdersDynamicTab расширяет LocalTaskDefault
{
/**
* {@inheritdoc}
*/
общедоступная функция getRouteParameters (RouteMatchInterface $ route_match)
{
возвращаться [
'user' => \Drupal::routeMatch()->getParameter('commerce_order')->getCustomerId(),
];
}
}
Раскомментирование этой версии и комментирование предыдущей локальной задачи приводит к ошибке при посещении /admin/people/1/orders. Чтобы было ясно, я пытаюсь создать локальную задачу, которая передает параметр в представление. Ниже приведена ошибка, которую я получаю. Заранее благодарим вас за любую помощь, которую вы можете предложить! (Я впервые публикую здесь вопрос, поэтому меня также интересуют исправления в моем сообщении.)
Сайт обнаружил непредвиденную ошибку. Пожалуйста, повторите попытку позже.
Ошибка: вызов функции-члена bundle() при нулевом значении в Drupal\commerce_shipping\Access\ShipmentCollectionAccessCheck->access() (строка 52 модуля/contrib/commerce_shipping/src/Access/ShipmentCollectionAccessCheck.php).
Drupal\commerce_shipping\Access\ShipmentCollectionAccessCheck->access()
call_user_func_array() (строка: 160)
Drupal\Core\Access\AccessManager->performCheck() (строка: 136)
Drupal\Core\Access\AccessManager->check() (строка: 93)
Drupal\Core\Access\AccessManager->checkNamedRoute() (строка: 327)
Drupal\Core\Menu\LocalTaskManager->getTasksBuild() (строка: 358)
Drupal\Core\Menu\LocalTaskManager->getLocalTasks() (строка: 95)
Drupal\Core\Menu\Plugin\Block\LocalTasksBlock->build() (строка: 171)
Drupal\block\BlockViewBuilder::preRender()
call_user_func_array() (строка: 101)
Drupal\Core\Render\Renderer->doTrustedCallback() (строка: 772)
Drupal\Core\Render\Renderer->doCallback() (строка: 363)
Drupal\Core\Render\Renderer->doRender() (строка: 435)
Drupal\Core\Render\Renderer->doRender() (строка: 201)
Drupal\Core\Render\Renderer->render() (строка: 463)
Drupal\Core\Template\TwigExtension->escapeFilter() (строка: 47)
__TwigTemplate_82330771d2235f13341d75dc3dba6b0551e4091dc4e3e3af75b58a51080d8b70->doDisplay() (строка: 405)
Twig\Template->displayWithErrorHandling() (строка: 378)
Twig\Template->display() (строка: 390)
Twig\Template->render() (строка: 55)
twig_render_template() (строка: 384)
Drupal\Core\Theme\ThemeManager->render() (строка: 422)
Drupal\Core\Render\Renderer->doRender() (строка: 201)
Drupal\Core\Render\Renderer->render() (строка: 463)
Drupal\Core\Template\TwigExtension->escapeFilter() (строка: 86)
__TwigTemplate_8396bbb6a446449db2b4f79819d5586f73fc0a7bf41d2501e27ba28c058bb7b1->doDisplay() (строка: 405)
Twig\Template->displayWithErrorHandling() (строка: 378)
Twig\Template->display() (строка: 390)
Twig\Template->render() (строка: 55)
twig_render_template() (строка: 384)
Drupal\Core\Theme\ThemeManager->render() (строка: 422)
Drupal\Core\Render\Renderer->doRender() (строка: 201)
Drupal\Core\Render\Renderer->render() (Строка: 162)
Drupal\Core\Render\MainContent\HtmlRenderer->Drupal\Core\Render\MainContent\{закрытие}() (строка: 564)
Drupal\Core\Render\Renderer->executeInRenderContext() (строка: 163)
Drupal\Core\Render\MainContent\HtmlRenderer->renderResponse() (строка: 90)
Drupal\Core\EventSubscriber\MainContentViewSubscriber->onViewRenderArray()
call_user_func() (строка: 142)
Drupal\Component\EventDispatcher\ContainerAwareEventDispatcher->dispatch() (строка: 163)
Symfony\Component\HttpKernel\HttpKernel->handleRaw() (строка: 80)
Symfony\Component\HttpKernel\HttpKernel->handle() (строка: 58)
Drupal\Core\StackMiddleware\Session->handle() (строка: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle() (строка: 106)
Drupal\page_cache\StackMiddleware\PageCache->pass() (строка: 85)
Drupal\page_cache\StackMiddleware\PageCache->handle() (строка: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle() (строка: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle() (строка: 23)
Stack\StackedHttpKernel->handle() (строка: 708)
Drupal\Core\DrupalKernel->handle() (строка: 19)