Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 使用对象';s法_Symfony_Doctrine Orm - Fatal编程技术网

Symfony 使用对象';s法

Symfony 使用对象';s法,symfony,doctrine-orm,Symfony,Doctrine Orm,我需要构建一个查询,返回所有以ROLE\u ADMIN作为ROLE的用户(我使用FOSUserBundle) Il已经尝试过这个方法,但不起作用,它抛出了“警告:get_class()期望参数1是object,boolean给定的” 请注意,如果没有where条件,它会工作,并且我返回了dabatase中的所有用户。这是您应该如何调用where: public function getAdminQueryBuilder() { return $this->createQueryBu

我需要构建一个查询,返回所有以ROLE\u ADMIN作为ROLE的用户(我使用FOSUserBundle)

Il已经尝试过这个方法,但不起作用,它抛出了“警告:get_class()期望参数1是object,boolean给定的”


请注意,如果没有where条件,它会工作,并且我返回了dabatase中的所有用户。

这是您应该如何调用
where

public function getAdminQueryBuilder() {
    return $this->createQueryBuilder('u')
              ->where('u.hasRole = :role')
              ->setParameter('role', 'ROLE_ADMIN')
    ;
}
如果有问题,请告诉我


编辑#2

请尝试以下方法:

public function getAdminQueryBuilder() {
    return $this->createQueryBuilder('u')
              ->where('u.roles LIKE :roles')
              ->setParameter('roles', '%ROLE_ADMIN%')
    ;
}

我认为它应该可以工作,但不能确定。

谢谢你的回答,但它会抛出“[Semantical Error]第0行,第54列靠近'hasRole=:r':错误:Class AppBundle\UserBundle\Entity\User没有名为hasRole的字段或关联”。看起来它不考虑HasPin作为一个函数吗?你已经考虑过<代码> @安全(“HasiGuff'(RoLyAdmin)))< /Cord>路由注释吗?是的,该消息意味着在
User
实体中没有定义
hasRole
字段。我的AppBundle中的用户实体扩展了包含此方法的FOSUserBundle的用户entyti:
public function hasRole($role){return in_array(strtoupper($role),$this->getRoles(),true);}
问题在于这是一个方法,而不是一个属性。我添加了第二次编辑。因为
角色
是一个数组。请试一试。
public function getAdminQueryBuilder() {
    return $this->createQueryBuilder('u')
              ->where('u.roles LIKE :roles')
              ->setParameter('roles', '%ROLE_ADMIN%')
    ;
}