在API平台安全性注释中使用常量

问题描述

Symfony的API平台允许您使用选民来授予或拒绝对资源的访问,如其docs中所述。

但是,所有示例都使用魔术值,因此我宁愿使用类常量。例如。

/**
 * @ApiResource(
 *     itemOperations={
 *          "put"={"security"="is_granted(UserVoter::USER_EDIT,object)"},*     }
 * )
 */

我已经为UserVoterApp\Security\Voter\UserVoter::USER_EDIT和转义的App\\Security\\Voter\\UserVoter::USER_EDIT使用了“ use”语句,但是API平台不接受任何内容

问题:如何在API平台中使用具有安全性的类常量?

解决方法

只是为了向任何想知道的人确认: is_granted(constant('\\App\\Security\\Voter\\UserVoter::USER_EDIT'),object) 很有用