मेरी एक संस्था है जो इस तरह दिखती है:
/**
* @Gedmo\Tree(type="nested")
* @ORM\Table(name="categories")
* @ORM\Entity()
*/
class Category extends BaseCategory
{
/**
* @ORM\OneToMany(targetEntity="Category", mappedBy="parent")
*/
protected $children;
/**
* @Gedmo\TreeParent
* @ORM\ManyToOne(targetEntity="Category", inversedBy="children")
* @ORM\JoinColumn(name="parent_id", referencedColumnName="id", onDelete="SET NULL")
*/
protected $parent;
}
और मैं इस तरह से एक क्वेरी चलाने की कोशिश कर रहा हूं:
$qb = $this->em->createQueryBuilder()
->select('c.parent')
->from('Category', 'c');
$result = $qb->getQuery()->getArrayResult();
हालाँकि, मुझे निम्न त्रुटि मिल रही है:
[Semantical Error] ... Error: Invalid PathExpression. Must be a StateFieldPathExpression.
मैं अपनी तालिका से पेरेंट_ड फ़ील्ड का चयन कैसे कर सकता हूं। मैंने विविधताओं की एक गुच्छा कोशिश की है और भले ही मैं ऐसा कुछ करूं:
$qb = $this->em->createQueryBuilder()
->select('c')
->from('Category', 'c');
मुझे पेरेंट_ड को छोड़कर टेबल में सभी फ़ील्ड मिलते हैं । ऐसा लगता है कि डॉक्ट्रिन रास्ते में मिल रही है। मैं इस parent_id फ़ील्ड के लिए क्वेरी कैसे कर सकता हूं? या बेहतर है फिर भी मैं माता-पिता सहित तालिका में सभी फ़ील्ड कैसे प्राप्त कर सकता हूं