如何使用Symfony表达式语言在@Security注释中使用类常量?
2022-08-30 21:55:41
我正在使用Symfony 3,并且我创建了一个自定义的Voter类。
我想使用SensioFrameworkExtraBundle标签访问它。@Security
它有点管用。
如果我执行以下操作,它可以完美地工作:
/**
* @Rest\Get("organisation/{id}")
* @Security("is_granted('OrgAdmin', id)")
* @param int $id
* @param Request $request
*
* @return View
*/
public function getOrganisationAction($id, Request $request)
{
但是我不喜欢在应用程序中使用魔术字符串的想法,我宁愿使用类常量进行检查。
像这样:
/**
* @Rest\Get("organisation/{id}")
* @Security("is_granted(AppBundle\OrgRoles::ROLE_ADMIN, id)")
* @param int $id
* @param Request $request
*
* @return View
*/
public function getOrganisationAction($id, Request $request)
{
但是当我尝试时,我收到以下错误消息:
Unexpected character \"\\\" around position 20 for expression `is_granted(AppBundle\\OrgRoles::ROLE_ADMIN, id)`.
哪个在未省略时,如下:
Unexpected character "\" around position 20 for expression `is_granted(AppBundle\OrgRoles::ROLE_ADMIN, id)`.
所以我对此感到困惑。
能做到吗?
关于更好的方法的任何建议?