访问控制配置引发"AppEntityPatientOrder object not found by the @ParamConverter annotation."错误



我正在尝试将访问控制配置为需要身份验证才能访问我的web应用程序的任何页面。但在我的控制器中设置主页路线后,我出现了一个错误。

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()
]);
}

如果不是Access控件,则抛出错误。

索引函数中,有一个参数"PatientOrderDepository$PatientOrderRepository"。Symfony正在尝试获取实体,但您的路由似乎没有任何ID可供使用,因此@ParamConverter会抛出找不到实体的错误。

也许您在yml路由配置中设计了一些id,但那里没有id占位符,因此ParamConverter仍然抛出异常。如果在路由器配置中使用某种patientId作为占位符,则需要在ParamConverter定义中指定映射。参见参考的链接

这被证明是一个路由错误-注销按钮被配置为指向app_logout,但它击中了我在到达我的/route之前设置为/{id}的路由。因此,它试图显示一个与我预期完全不同的页面。

相关内容

最新更新