2016-07-24 49 views
0

将商店产品及其子产品放在一个表中。 产品将在'parentId'上有自我引用。如果它不是子产品,则parentId为NULL,并且只有1级嵌套,所以子产品不具有子产品。 我想要实现搜索查询,搜索所有记录,但它返回父产品。因此,如果搜索与子产品相匹配的术语,就会得到它的父产品。 这是我当前的查询:在所有记录中搜索,但仅返回父级产品,并且没有子产品,Laravel5.2

$products = Product::with('categories') 
      ->where('is_active', '=', 1) 
      ->where('name', 'LIKE', "%$search_term%") 
      ->where('brand', 'LIKE', "%$search_term%") 
      ->orWhere('description', 'LIKE', "%$search_term%") 
      ->orderBy('id', 'ASC') 
      ->where('parent_pid', '=', 'NULL') 
      ->get(); 
+0

试试这个'whereNotNull( 'parent_pid')',而不是这个' - > where('parent_pid','=','NULL')' – Pankaj

回答

0

的方式你

->where('parent_pid', '=', 'NULL') 

过滤你的产品做简单的字符串比较,并检查是否parent_pid列包含字符串NULL

如果您要筛选在此列有NULL值的所有产品,你需要使用whereNull方法:

->whereNull('parent_pid')