学说名为sqlfilter如何访问到一对多关系的别名

问题描述 投票:0回答:1

我有一个名为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_”的别名

谢谢

symfony doctrine
1个回答
0
投票

addFilterConstraint接收别名作为第二个参数。通过替换

$sqlLocal = sprintf(
            '%s.employeur_id IN (%s))',
            $targetTableAlias,
            $employeursArray
        );  

您可以在https://www.doctrine-project.org/projects/doctrine-orm/en/2.6/reference/filters.html#example-filter-class检查例子

© www.soinside.com 2019 - 2024. All rights reserved.