Конфигурация управления доступом выдает «объект App \ Entity \ PatientOrder не найден аннотацией @ParamConverter».ошибка - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь настроить контроль доступа, чтобы требовать аутентификацию для доступа к любой странице моего веб-приложения.Но я получаю сообщение об ошибке после установки маршрута домашней страницы в моем контроллере.

Security.yaml

access_control:
        - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/, roles: ROLE_USER }

PatientOrderController.php

    /**
     * @Route("/", name="patient_order_index", methods={"GET"})
     * @param PatientOrderRepository $patientOrderRepository
     * @return Response
     */
    public function index(PatientOrderRepository $patientOrderRepository)
    {
        return $this->render('oncomine/patient_order/index.html.twig', [

            'patient_orders' => $patientOrderRepository->getPatientsWIthOrders()
        ]);
    }

Ответы [ 2 ]

0 голосов
/ 24 сентября 2019

Оказалось, что это ошибка маршрутизации - кнопка выхода была настроена так, чтобы указывать на app_logout, однако она сталкивалась с маршрутом, который я настроил как / {id}, прежде чем он попал в мой / route.Так что он пытался показать совершенно другую страницу, чем я ожидал.

0 голосов
/ 24 сентября 2019

Это не элемент управления доступом, который выдает ошибку.

В вашей функции index есть параметр "PatientOrderRepository $ PatientOrderRepository".Symfony пытается извлечь объект, но у вашего маршрута нет идентификаторов для использования, поэтому @ParamConverter выдает ошибку, что не может найти объект.

Возможно, у вас есть некоторые идентификаторы, разработанные в вашей конфигурации маршрутизации yml, но тогда там не будет заполнителя id , поэтому ParamConverter по-прежнему выдает исключение.Если вы используете какой-либо PatientId в качестве заполнителя в конфигурации вашего маршрутизатора, то вам необходимо указать сопоставление в определении ParamConverter.См. Ссылку для справки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...