Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.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 如何与教义建立内在联系?_Php_Symfony_Doctrine Orm_Dql - Fatal编程技术网

Php 如何与教义建立内在联系?

Php 如何与教义建立内在联系?,php,symfony,doctrine-orm,dql,Php,Symfony,Doctrine Orm,Dql,我的数据库中有3个表: 联想 身份证 头衔 使用者 身份证 名字 用户协会 身份证 身份证用户 id_协会 我想在SQL上执行此查询: SELECT a.id, a.title, u.id, u.name FROM association AS a INNER JOIN association_user AS au ON au.association_id = a.id INNER JOIN user AS u ON u.i

我的数据库中有3个表:

  • 联想
    • 身份证
    • 头衔
  • 使用者
    • 身份证
    • 名字
  • 用户协会
    • 身份证
    • 身份证用户
    • id_协会
  • 我想在SQL上执行此查询:

    SELECT a.id, a.title, u.id, u.name
          FROM association AS a
          INNER JOIN association_user AS au
          ON au.association_id = a.id
          INNER JOIN user AS u
          ON u.id = au.user_id
          WHERE au.user_id = ID
    
    目前,我有以下几点:

            return $this->createQueryBuilder('a')
                        ->join('association.users', 'u')
                        ->addSelect('a')
                        ->join('user.id', 'u.id')
                        ->addSelect('u')
                        ->where("au.user_id = :id")
                        ->setParameter('id', $userid)
                        ->getQuery()
                        ->getResult()
        ;
    
    但它不起作用:

    [Semantical Error] line 0, col 73 near '.users u INNER': Error: Identification Variable association used in join path expression but was not defined before.
    
    我的querybuilder怎么了

    工作代码

    我已将查询更改为:

    'query_builder' => function(EntityRepository $er) {
                        return $er->createQueryBuilder('a')                              
                                ->innerJoin('a.users','u')
                                ->where('u.id = :id')->setParameter('id', $this->getUser()->getId());             
                    },
    

    如果实体映射正确,则querybuilder将自动连接映射中指定的列,您无需在此处再次指定它们:

    $qb->select("a,u")
            ->from('MyBundle\Association','a')
            ->innerJoin('a.users','u')
            ->where('u.id = :id')
            ->setParameter('id',$userid);
    

    我已经用工作代码更新了代码。谢谢你的帮助