0
を特定のOrganization
から取得するためにクエリを実行しようとしていますが、空の結果を返します...(データベースにデータがあります) Repos組織はMany to Many
の関係です。Symfony/Doctrine:子アトリビュートによるクエリのフィルタ
ここRepos
エンティティの:
/**
* Repos
*
* @ORM\Table(name="repos")
* @ORM\Entity(repositoryClass="AppBundle\Repository\ReposRepository")
*/
class Repos
{
...
/**
*
* @ManyToMany(targetEntity="Organization", inversedBy="repos")
*
*/
protected $orgs;
...
はここOrganization
エンティティの:
/**
* Organization
*
* @ORM\Table(name="organization")
* @ORM\Entity(repositoryClass="AppBundle\Repository
* \organizationRepository")
*/
class Organization
{
...
/**
*
* @ORM\ManyToMany(targetEntity="Repos", mappedBy="orgs")
*
*/
protected $repos;
...
}
はここQueryBuilder
とRepository
です:
/**
* 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
は、ORの名前ですが、私は同じ組織名ですべてのレポを取得したいと思っています。
WOWW、それは動作します!私は数日前に解決策を見ましたが、私はCreateQueryBuilderと同じ結合のエイリアスを入れました!それがうまくいかない理由です!ありがとうございました! – HessianMad