Ich versuche, eine Abfrage auszuführen, um alle Repos
von einem bestimmten Organization
zu erhalten, aber es gibt ein leeres Ergebnis zurück ... (Ich habe Daten in der DB!) Repos und Organisation sind eine Many to Many
Beziehung.Symfony/Doctrine: Abfrage nach Kind Attribut
Hier ist das Repos
Entity:
/**
* Repos
*
* @ORM\Table(name="repos")
* @ORM\Entity(repositoryClass="AppBundle\Repository\ReposRepository")
*/
class Repos
{
...
/**
*
* @ManyToMany(targetEntity="Organization", inversedBy="repos")
*
*/
protected $orgs;
...
Hier ist die Organization
Entity:
/**
* Organization
*
* @ORM\Table(name="organization")
* @ORM\Entity(repositoryClass="AppBundle\Repository
* \organizationRepository")
*/
class Organization
{
...
/**
*
* @ORM\ManyToMany(targetEntity="Repos", mappedBy="orgs")
*
*/
protected $repos;
...
}
Hier ist die Repository
mit dem 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();
}
}
Die $name
ist der Name eines Or Ich möchte alle Repos mit demselben Organisationsnamen erhalten.
Woww, es funktioniert !! Ich habe die Lösung vor einigen Tagen gesehen, aber ich habe den gleichen Join-Alias wie der CreateQueryBuilder! Deshalb hat es nicht funktioniert! Vielen Dank! – HessianMad