public function scopeSearch($query, $value)
{
$searchValues = explode(' ', $value);
if (!$value) return $query;
return $query->where(function ($q) use ($searchValues) {
foreach ($searchValues as $token) {
$q->orWhere('name', 'like', "%{$token}%");
$q->orWhere('street', 'like', "%{$token}%");
}
});
}
我想搜索資料。這個模型還有
public function brands()
{
return $this->belongsToMany(Brand::class, 'dealer_brands');
}
public function province()
{
return $this->belongsTo(Province::class);
}
如何從關系中獲取資料。像 Dealer(model) 有資料 Nmae = josh , brand_id = 1 {brand.name = samsung} , Province_id = 2 (province.name = "aligora")。當我搜索 Josh Samsung Alogora 時,我想獲取資料。當我只搜索aligora時,我想得到具有省aligora的模型的資料。我如何修改代碼?
uj5u.com熱心網友回復:
查看您的模型關系。這可能對你有用
public function scopeSearch($query, $value)
{
if (!$value) return $query;
$searchValues = explode(' ', $value);
return $query->where(function ($q) use ($searchValues) {
foreach ($searchValues as $token) {
$q->where('name', 'like', "%{$token}%")
->orWhere('street', 'like', "%{$token}%")
->orWhereHas('brands', function ($sub_q) use ($searchValues) {
$sub_q->where('name', 'like', "%{$token}%")
->orWhere('street', 'like', "%{$token}%");
})
->orWhereHas('province', function ($sub_q) use ($searchValues) {
$sub_q->where('name', 'like', "%{$token}%")
->orWhere('street', 'like', "%{$token}%");
});
}
});
}
我不知道相關表中的列名,所以重復名稱和街道。您可以根據需要更改
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/403670.html
標籤:
