我有一个名为sqlfilter,我想在一个一对多的关系过滤
我的仓库
$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
);
}
}
筛选的作品,但我已经harcoded别名“c1_”
我不发现如何得到这个别名,因为它的变化对其他页面
$ targetTableAlias是雇工“e1_”的别名
谢谢
addFilterConstraint
接收别名作为第二个参数。通过替换
$sqlLocal = sprintf(
'%s.employeur_id IN (%s))',
$targetTableAlias,
$employeursArray
);