在我的代码中,我想按product_name和merchant_name进行搜索,但当我使用orWhere运算符时,我会收到此错误
BadMethodCallException:方法Illuminate\Database\Eloquent\Collection::或Where不存在。在文件/用户/管理/桌面/GSM源代码/API/供应商/laravel/framework/src/IIlluminate/Macroable/Tarats/MMacroable.php第113行
public function search($name)
{
$brand = Brand::join('product_categories','product_categories.id','=','brands.category')
->join('products','products.id','=','brands.product')
->join('merchants','merchants.id','=','brands.merchant')
->join('new_shops','new_shops.id','=','brands.shop')
->get([
'brands.id',
'brands.image',
'product_categories.category',
'products.product_name',
'merchants.merchant_name',
'new_shops.shop_name',
'brands.activation',
'brands.created_at',
'brands.updated_at'
])->where('product_name',$name)
->orWhere('merchant_name',$name);
return new BrandResource($brand);
}
此外,当我在where子句中使用LIKE运算符时,它不会给出任何结果
在get之后必须使用where和orWhere,如下所示:
$brand = Brand::join('product_categories','product_categories.id','=','brands.category')
->join('products','products.id','=','brands.product')
->join('merchants','merchants.id','=','brands.merchant')
->join('new_shops','new_shops.id','=','brands.shop')
->where('product_name',$name)
->orWhere('merchant_name',$name)
->get();
orWhere
是一个QueryBuilder方法。如果你使用get
,你会返回一个集合,这意味着你不能使用它。试着把它们放在get之前,应该可以很好地使用