我需要构建一个查询,返回所有以'ROLE_ADMIN'为角色的用户(我使用FOSUserBundle)。
我已经尝试了这个,但它不起作用,它抛出了我“警告:get_class()期望参数1是对象,给定布尔值”。
#!/usr/bin/perl
use strict;
use warnings;
use feature 'say';
use WWW::Mechanize;
use Digest::MD5 qw(md5_hex);
use URI;
my $url = $ARGV[0];
if ($url !~ m{^https?://[^\W]+-?\.com/?}i) {
exit(0);
}
my $ua = WWW::Mechanize->new;
$ua->timeout( 10 );
$ua->get( $url );
foreach ($ua->links) {
say $_->url;
say "Digest for the above URL is " . md5_hex($_->url) . "\n";
}
请注意,如果没有where条件,它可以正常工作,并且我在dabatase中返回了所有用户。
答案 0 :(得分:2)
这是你应该如何调用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%')
;
}
我认为它应该有用,但不确定。