搜索所有记录,但仅返回父产品,不返回任何子产品,Laravel5.2

时间:2016-07-24 14:13:17

标签: php laravel laravel-5 eloquent laravel-5.2

将商店产品及其子产品放在一个表中。 产品将在'parentId'上进行自我引用。如果它不是子产品,那么parentId为NULL并且只有1级嵌套,因此子产品没有子产品。 我想实现搜索所有记录的搜索查询,但它返回父产品。因此,如果搜索与子产品匹配的术语,则获得它的父产品。 这是我目前的查询:

$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();

1 个答案:

答案 0 :(得分:0)

使用

过滤产品的方式
->where('parent_pid', '=', 'NULL')

进行简单的字符串比较并检查 parent_pid 列是否包含字符串 NULL

如果您要在此列中过滤所有 NULL 值的产品,则需要使用 whereNull 方法:

->whereNull('parent_pid')