我可以按子类别显示产品,但不能按其初始类别显示商品:
类别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;
我在问我如何按类别而不是按子类别显示产品
谢谢