Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.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_Symfony_Doctrine Orm - Fatal编程技术网

Php Symfony/条令:按子属性筛选查询

Php Symfony/条令:按子属性筛选查询,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,我试图执行一个查询,以从特定的组织获取所有回购,但它返回一个空结果。。。(数据库中有数据!) 回购与组织是一种多对多关系 以下是Repos实体: /** * Repos * * @ORM\Table(name="repos") * @ORM\Entity(repositoryClass="AppBundle\Repository\ReposRepository") */ class Repos { ... /** * * @Many

我试图执行一个查询,以从特定的
组织
获取所有
回购
,但它返回一个空结果。。。(数据库中有数据!) 回购与组织是一种多对多关系

以下是
Repos
实体:

/**
 * Repos
 *
 * @ORM\Table(name="repos")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\ReposRepository")
 */
 class Repos
 {

     ...

     /**
      * 
      * @ManyToMany(targetEntity="Organization", inversedBy="repos")
      *
      */
     protected $orgs;

     ...
 /**
  * Organization
  *
  * @ORM\Table(name="organization")
  * @ORM\Entity(repositoryClass="AppBundle\Repository
  * \organizationRepository")
  */
  class Organization
  {
      ...

      /**
       *
       * @ORM\ManyToMany(targetEntity="Repos", mappedBy="orgs")
       *
       */
       protected $repos;

      ...
  }
以下是
组织
实体:

/**
 * Repos
 *
 * @ORM\Table(name="repos")
 * @ORM\Entity(repositoryClass="AppBundle\Repository\ReposRepository")
 */
 class Repos
 {

     ...

     /**
      * 
      * @ManyToMany(targetEntity="Organization", inversedBy="repos")
      *
      */
     protected $orgs;

     ...
 /**
  * Organization
  *
  * @ORM\Table(name="organization")
  * @ORM\Entity(repositoryClass="AppBundle\Repository
  * \organizationRepository")
  */
  class Organization
  {
      ...

      /**
       *
       * @ORM\ManyToMany(targetEntity="Repos", mappedBy="orgs")
       *
       */
       protected $repos;

      ...
  }
下面是带有
QueryBuilder
存储库

/**
 * ReposRepository
 *
 * This class was generated by the Doctrine ORM. Add your own custom
 * repository methods below.
 */
 class ReposRepository extends \Doctrine\ORM\EntityRepository
 {

    public function findReposByName($name){
        $qb = $this->createQueryBuilder('r');

        // Build query
        $qb->select('r')
           ->andWhere(
                ':searchName MEMBER OF r.orgs'
             );
        $qb->setParameter('searchName',$name);
        return $qb->getQuery()->getResult();
    }

 }

$name
是一个组织的名称,我希望获得具有相同组织名称的所有回购协议。

如果要使用组织的
name
属性进行筛选,必须执行加入查询

使用查询生成器 在DQL中
公共函数findReposByName($name){
$dql=setParameter('searchName',$name)
->getResult();
}

如果要使用组织的
name
属性进行筛选,则必须执行加入查询

使用查询生成器 在DQL中
公共函数findReposByName($name){
$dql=setParameter('searchName',$name)
->getResult();
}

WOWW,它可以工作!!几天前我看到了这个解决方案,但我使用了与CreateQueryBuilder相同的联接别名!这就是它不起作用的原因!非常感谢。哇,真管用!!几天前我看到了这个解决方案,但我使用了与CreateQueryBuilder相同的联接别名!这就是它不起作用的原因!非常感谢。