我想在获得关系后搜索记录。我尝试过Laravel的收藏品。没有努力工作。
public function search($key){
$products = Product::with('unit', 'category', 'brand')->get();
$allproducts = collect($products);
$result = $allproducts->search($key);
在这里,我希望也可以根据类别和品牌进行搜索。 如果我不能收集你,那么如何以标准方式进行收集。
答案 0 :(得分:1)
我认为使用查询是最好的方法,因为您不需要从数据库加载所有products-categories-etc.然后尝试找到匹配的。
示例查询
Product::where('product_name', 'LIKE', "%$keyword%")
->orWhereHas('category', function ($q) use ($keyword) {
$q->where('category_name', 'LIKE', "%$keyword%");
//everything else you need to check
})->get();