$this->buildMenuAccompanyingCourse($menu, $parameters), 'person' => $this->buildMenuPerson($menu, $parameters), default => throw new \LogicException("this menuid {$menuId} is not implemented"), }; } public static function getMenuIds(): array { return ['person', 'accompanyingCourse']; } private function buildMenuAccompanyingCourse(MenuItem $menu, array $parameters): void { $course = $parameters['accompanyingCourse']; if ($this->security->isGranted(AccompanyingCourseDocumentVoter::SEE, $course)) { $menu->addChild($this->translator->trans('Documents'), [ 'route' => 'chill_docstore_generic-doc_by-period_index', 'routeParameters' => [ 'id' => $course->getId(), ], ]) ->setExtras([ 'order' => 400, ]); } } private function buildMenuPerson(MenuItem $menu, array $parameters): void { /** @var \Chill\PersonBundle\Entity\Person $person */ $person = $parameters['person']; if ($this->security->isGranted(PersonDocumentVoter::SEE, $person)) { $menu->addChild($this->translator->trans('Documents'), [ 'route' => 'chill_docstore_generic-doc_by-person_index', 'routeParameters' => [ 'id' => $person->getId(), ], ]) ->setExtras([ 'order' => 350, ]); } } }