按类别和子类别显示产品

时间:2019-04-17 12:51:59

标签: categories hierarchy symfony4

我可以按子类别显示产品,但不能按其初始类别显示商品:

类别1:     子类别1:           产品1

但是如果我不想仅按类别显示:

类别1:           产品未显示

一个类别有一个id和一个id_parent:

例如:

史诗般的人物:id(1) |饼干:id(10),id_parent(1)

In my controller
        if ($categorie != null)
            $findProduits = $this->repository->byCategorie($categorie);
        else
            $findProduits = $this->repository->findBy(array('etat' => 1));
//The repository
  public function byCategorie($categorie)
    {
        $qb = $this->createQueryBuilder('u')
            ->select('u')
            ->where('u.id_categorie = :id_categorie')
            ->andWhere('u.etat = 1')
            ->orderBy('u.id')
            ->setParameter('id_categorie', $categorie);
        return $qb->getQuery()->getResult();
    }

//Entity categorie

class Categorie
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="string", length=255, nullable=true)
     */
    private $nom;

    /**
     * @ORM\OneToMany(targetEntity="App\Entity\Produit", mappedBy="id_categorie")
     */
    private $id_produit;

    /**
     * @Gedmo\TreeParent
     * @ORM\ManyToOne(targetEntity="App\Entity\Categorie", inversedBy="children")
     * @ORM\JoinColumn(referencedColumnName="id", onDelete="CASCADE")
     */
    private $id_parent;


    /**
     * @Gedmo\TreeLeft
     * @ORM\Column(type="integer",nullable=true)
     */
    private $lft;

    /**
     * @Gedmo\TreeLevel
     * @ORM\Column(type="integer",nullable=true)
     */
    private $lvl;

    /**
     * @Gedmo\TreeRight
     * @ORM\Column(type="integer",nullable=true)
     */
    private $rgt;

    /**
     * @Gedmo\TreeRoot
     * @ORM\ManyToOne(targetEntity="App\Entity\Categorie")
     * @ORM\JoinColumn(referencedColumnName="id", onDelete="CASCADE")
     */
    private $root;

    /**
     * @ORM\OneToMany(targetEntity="App\Entity\Categorie", mappedBy="id_parent")
     * @ORM\OrderBy({"lft" = "ASC"})
     */
    private $children;




//Entity produit

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\Categorie", inversedBy="id_produit")
     */
    private $id_categorie;

我在问我如何按类别而不是按子类别显示产品

谢谢

0 个答案:

没有答案