我正在制作一個搜索功能,并且正在使用 orWhere,但是,我遇到了一個問題,我想通過文本搜索brand_id。在我的模式中,我將其設置為“belongsTo”,但是我有什么方法可以在 MySQL 搜索詞中使用它嗎?我的搜索查詢$products = Product::where('name', 'LIKE', '%' . $searchTerm . '%')->orWhere('title', 'LIKE', '%' . $searchTerm . '%')->orWhere('description', 'LIKE', '%' . $searchTerm . '%')->orWhere('allergies', 'LIKE', '%' . $searchTerm . '%')->orWhere('price', 'LIKE', '%' . $searchTerm . '%')->paginate(15);我想以某種方式包含品牌名稱,而不是數據庫中的品牌 ID。有什么辦法可以做到這一點嗎?我在我的產品模型中將其像這樣鏈接起來public function brand(){ return $this->belongsTo(Brand::class);}
1 回答

米琪卡哇伊
TA貢獻1998條經驗 獲得超6個贊
您可以使用 orWhereHas:
$products?=?Product::where('name',?'LIKE',?'%'?.?$searchTerm?.?'%') ????????????????->orWhere('title',?'LIKE',?'%'?.?$searchTerm?.?'%') ????????????????->orWhere('description',?'LIKE',?'%'?.?$searchTerm?.?'%') ????????????????->orWhere('allergies',?'LIKE',?'%'?.?$searchTerm?.?'%') ????????????????->orWhere('price',?'LIKE',?'%'?.?$searchTerm?.?'%') ????????????????->orWhereHas('brand',?function($q)?use?($searchTerm){ ????????????????????$q->where('name',?'LIKE',?"%{$searchTerm}%"); ????????????????}) ????????????????->paginate(15);
- 1 回答
- 0 關注
- 141 瀏覽
添加回答
舉報
0/150
提交
取消