Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.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
Php 如何使用条令在Symfony上进行连接查询?_Php_Sql_Symfony_Join_Doctrine - Fatal编程技术网

Php 如何使用条令在Symfony上进行连接查询?

Php 如何使用条令在Symfony上进行连接查询?,php,sql,symfony,join,doctrine,Php,Sql,Symfony,Join,Doctrine,我一直坚持使用querybuilder创建连接查询。 有一个名为“人员”的表格和一个名为“空缺”的表格。如果某人链接到空缺,则person.id和空缺.id将保存在名为“Candidate”的表中。那么,我如何才能找到所有链接到空缺id 1的人 那么,我必须在哪里启动AppBundle:候选实体 $entity = $em ->getRepository('AppBundle:Person') ->createQueryBuilder('p') ->jo

我一直坚持使用querybuilder创建连接查询。 有一个名为“人员”的表格和一个名为“空缺”的表格。如果某人链接到空缺,则person.id和空缺.id将保存在名为“Candidate”的表中。那么,我如何才能找到所有链接到空缺id 1的人

那么,我必须在哪里启动AppBundle:候选实体

$entity = $em
    ->getRepository('AppBundle:Person')
    ->createQueryBuilder('p')
    ->join('p.id', 'c')
    ->where('c.vacancyId= 1')
    ->getQuery()
    ->getResult();

提前谢谢你。

看来你有多对多的关系。 您应该通过候选资格到人员,然后通过空缺到候选资格,将您的人员和空缺表链接起来

小示例:实体用户通过UserEngagement表连接到约定

        $qb = $this->_em->createQueryBuilder()
        ->select('u')
        ->from($this->_entityName, 'u')
        ->join('u.userEngagements', 'ue')
        ->join('ue.engagement', 'en')
        ...

存储库中的示例:

public function getPersonVacancy($personId) {
    $qb = $this->createQueryBuilder('p');
    $qb->leftJoin('p.vacancy', 'v');
    $qb->select('v.name', 'v.id');
    $qb->where('p.id = :personId');
    $qb->setParameter('personId', $personId);
    return  $qb ->getQuery()->getResult();
这是给你一个例子,它可能无法与复制粘贴。
此外,条令文档中解释了所有连接方法,请随意阅读

所有连接方法都在Don be lazy and read;)中描述