Этот вопрос задавался так много раз с разными данными и по-разному, но я не вижу, что я сделал не так.
Я пытаюсь запросить ArticleFamily и получить записи, относящиеся к определенному языку.
$qb = $this->em->createQueryBuilder();
$qb->select('af', 'afl')
->from('DatabaseBundle:ArticleFamily', 'af')
->leftJoin('af.articleFamilyLanguages', 'afl')
->where('afl.language = :languageId')
->setParameter('languageId', 3);
Этот запрос возвращает ошибку Notice: Undefined index: language
, поэтому я предполагаю, что это связано с сопоставлениями, но я не вижу, где ошибка.
СтатьяСемейная Сущность
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="article_name_key", type="string", length=50, nullable=false)
*/
private $articleNameKey;
/**
* @var string
*
* @ORM\Column(name="short_key", type="string", length=5, nullable=false)
*/
private $shortKey;
/**
* @var boolean
*
* @ORM\Column(name="asset_synced", type="boolean", nullable=false)
*/
private $assetSynced;
/**
* @var \Doctrine\Common\Collections\Collection|Article[]
*
* @ORM\OneToMany(
* targetEntity="DatabaseBundle\Entity\Article",
* mappedBy="articleFamily",
* cascade={"all"},
* orphanRemoval=true)
* @ORM\OrderBy({"articleId" = "ASC"})
*/
private $relatedArticles;
/**
* @var \Doctrine\Common\Collections\Collection|Article[]
*
* @ORM\OneToMany(
* targetEntity="DatabaseBundle\Entity\Asset",
* mappedBy="articleFamily",
* cascade={"all"},
* orphanRemoval=true)
*/
private $relatedAssets;
/**
* @var \Doctrine\Common\Collections\Collection|ArticleFamilyLanguage[]
*
* @ORM\OneToMany(
* targetEntity="DatabaseBundle\Entity\ArticleFamilyLanguage",
* mappedBy="articleFamily",
* cascade={"all"},
* orphanRemoval=true)
* @ORM\OrderBy({"language" = "ASC"})
*/
private $articleFamilyLanguages;
/**
* @var \Doctrine\Common\Collections\Collection|ArticleFamilyInCategory[]
*
* @ORM\OneToMany(
* targetEntity="DatabaseBundle\Entity\ArticleFamilyInCategory",
* mappedBy="articleFamily",
* cascade={"all"},
* orphanRemoval=true)
*/
private $articleFamilyInCategories;
/**
* Constructor
*/
public function __construct()
{
$this->relatedArticles = new \Doctrine\Common\Collections\ArrayCollection();
$this->relatedAssets = new \Doctrine\Common\Collections\ArrayCollection();
$this->articleFamilyLanguages = new \Doctrine\Common\Collections\ArrayCollection();
$this->articleFamilyInCategories = new \Doctrine\Common\Collections\ArrayCollection();
}
СтатьяFamilyLanguage Entity
/**
* @var string
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=50, nullable=true)
*/
private $name;
/**
* @var string
*
* @ORM\Column(name="seo_description", type="string", length=156, nullable=true)
*/
private $seoDescription;
/**
* @var string
*
* @ORM\Column(name="seo_keywords", type="string", length=255, nullable=true)
*/
private $seoKeywords;
/**
* @var string
*
* @ORM\Column(name="seo_title", type="string", length=56, nullable=true)
*/
private $seoTitle;
/**
* @var string
*
* @ORM\Column(name="description", type="text", nullable=true)
*/
private $description;
/**
* @var string
*
* @ORM\Column(name="description_important", type="text", nullable=true)
*/
private $descriptionImportant;
/**
* @var string
*
* @ORM\Column(name="description_info", type="text", nullable=true)
*/
private $descriptionInfo;
/**
* @var string
*
* @ORM\Column(name="description_info_visible", type="text", nullable=true)
*/
private $descriptionInfoVisible;
/**
* @var string
*
* @ORM\Column(name="description_discount", type="text", nullable=true)
*/
private $descriptionDiscount;
/**
* @var string
*
* @ORM\Column(name="thesaurus", type="text", nullable=true)
*/
private $thesaurus;
/**
* @var string
*
* @ORM\Column(name="important_feature", type="string", length=128, nullable=true)
*/
private $importantFeature;
/**
* @var Language
*
* @ORM\ManyToOne(targetEntity="DatabaseBundle\Entity\Language")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="language_id", referencedColumnName="id")
* })
*/
protected $language;
/**
* @var ArticleFamily
*
* @ORM\ManyToOne(targetEntity="DatabaseBundle\Entity\ArticleFamily", inversedBy="articleFamilyLanguages")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="article_family_id", referencedColumnName="id")
* })
*/
private $articleFamily;
Языковая сущность
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="iso2", type="string", length=2, nullable=true)
*/
private $iso2;
/**
* @var string
*
* @ORM\Column(name="nav_code", type="string", length=3, nullable=true)
*/
private $navCode;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=50, nullable=true)
*/
private $name;
/**
* @var boolean
*
* @ORM\Column(name="active", type="boolean", nullable=true)
*/
private $active;