2 回答

TA貢獻(xiàn)1725條經(jīng)驗(yàn) 獲得超8個(gè)贊
你已經(jīng)非常接近了,但是當(dāng)你需要在括號(hào)之間有條件時(shí),你的 where() 函數(shù)應(yīng)該是一個(gè)回調(diào)。
例如(product.title like '%$keyword%' OR product.content like '%$keyword%' OR product.price like '%$keyword%' OR product.quantity like '%$keyword%') 將是
$query->where(function($subquery) use($keyword) {
$subquery->where('title', 'like', "%{$keyword}%")
->orWhere('content', 'like', "%{$keyword}%");
});
這只是您的要求的一個(gè)粗略示例,但您應(yīng)該得到它。
正如您所知,您可以組合幾乎所有 Eloquent 功能。
祝你好運(yùn)!

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊
您可以在方法內(nèi)部傳遞一個(gè)閉包where
。閉包將接收一個(gè)查詢生成器實(shí)例,您可以使用它來(lái)設(shè)置應(yīng)包含在括號(hào)內(nèi)的約束。
這被稱為parameter grouping
。
https://laravel.com/docs/7.x/queries#parameter-grouping
將您的聲明更改為此。
$data = DB::table('product')
->select('product.id','product.title','product.description','product.content','product.photo','product.quantity','product.price')
->join('product_per_category','product_per_category.product_id','=','product.id')
->where(['product.deleted' => 0])
->where(['product_per_category.deleted' => 0])
->where(['product_per_category.productcategory_id' => $id])
->where(function($query) use($keyword){
$query->where('product.content', 'like', '%' . $keyword . '%')
->orWhere('product.title', 'like', '%' . $keyword . '%')
->orWhere('product.quantity', 'like', '%' . $keyword . '%')
->orWhere('product.price', 'like', '%' . $keyword . '%');
})
->groupBy('product.id')
->get();
- 2 回答
- 0 關(guān)注
- 179 瀏覽
添加回答
舉報(bào)