【发布时间】:2017-11-19 08:04:11
【问题描述】:
我正在使用 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)`.
所以我被难住了。
可以吗?
有什么更好的方法可以做到这一点吗?
【问题讨论】:
标签: php symfony namespaces expression