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(模型)有数据Nmae = josh,brand_id =1 {brand.name = samsung},province_id =2 (province.name = "aligora")。当我搜索乔希三星Alogora时,我想查看数据。当我只搜索阿利戈拉的时候,我想要得到模型有省的数据。hOW我可以修改代码吗?
发布于 2022-01-03 12:31:45
看看你的模特关系。这可能对你有用
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://stackoverflow.com/questions/70565531
复制相似问题