我有一个sqlFilter,我想按OneToMany关系进行过滤
我的存储库
$qb = $this->createQueryBuilder('employe');
$qb->leftJoin('employe.contrats', 'contrats', 'WITH');
还有我的过滤器
class DepartementFilter extends SQLFilter
{
public function addFilterConstraint(ClassMetadata $targetEntity, $targetTableAlias)
{
employeursArray=[1,2,3];
if ($targetEntity->getReflectionClass()->name === 'App\Entity\Employe') {
$sqlLocal = sprintf(
'c1_.employeur_id IN (%s))',
$employeursArray
);
}
}
过滤器有效,但我使用别名“ c1_”
我找不到如何获得此别名的名称,因为它在其他页面上已更改
$ targetTableAlias是Employe“ e1_”的别名
谢谢
答案 0 :(得分:0)
addFilterConstraint
接收别名作为第二个参数。替换为
$sqlLocal = sprintf(
'%s.employeur_id IN (%s))',
$targetTableAlias,
$employeursArray
);
中查看示例