在 sql 上搜索名称而不是 ID
searching on name instead of id on sql
我的产品页面中有搜索输入。如果我输入 id,我可以在描述和类别上搜索名称,但是我如何更改它并不实用 sql 所以我可以搜索类别名称而不是 id。
DB 我有产品 |名称,描述,category_id
类别 |身份证号,姓名
public function scopeFilter($query,array $filters){
if ($filters['search'] ?? false){
$query
->where('name', 'like', '%' . request('search') . '%')
->orWhere('description', 'like', '%' . request('search') . '%')
->orWhere('category_id', 'like', '%' . request('search'). '%');
}
}
由于类别是相关模型搜索关系:
public function scopeFilter($query,array $filters){
if ($filters['search'] ?? false){
$query
->where('name', 'like', '%' . request('search') . '%')
->orWhere('description', 'like', '%' . request('search') . '%')
->orWhereHas('category', function ($q) {
$q->where('name','like', '%' . request('search'). '%'
});
}
}
这是假设您已经在模型中定义了关系。
由于类别是关系的相关模型搜索,我建议使用此代码:
public function scopeFilter($query,array $filters) {
if ($filters['search'] ?? false){
return $query->where('name', 'like', '%' . request('search') . '%')
->orWhere('description', 'like', '%' . request('search') . '%')
->orWhereHas('category', function ($q) {
$q->where('name','like', '%' . request('search'). '%');
});
}
return $query;
}
我的产品页面中有搜索输入。如果我输入 id,我可以在描述和类别上搜索名称,但是我如何更改它并不实用 sql 所以我可以搜索类别名称而不是 id。
DB 我有产品 |名称,描述,category_id 类别 |身份证号,姓名
public function scopeFilter($query,array $filters){
if ($filters['search'] ?? false){
$query
->where('name', 'like', '%' . request('search') . '%')
->orWhere('description', 'like', '%' . request('search') . '%')
->orWhere('category_id', 'like', '%' . request('search'). '%');
}
}
由于类别是相关模型搜索关系:
public function scopeFilter($query,array $filters){
if ($filters['search'] ?? false){
$query
->where('name', 'like', '%' . request('search') . '%')
->orWhere('description', 'like', '%' . request('search') . '%')
->orWhereHas('category', function ($q) {
$q->where('name','like', '%' . request('search'). '%'
});
}
}
这是假设您已经在模型中定义了关系。
由于类别是关系的相关模型搜索,我建议使用此代码:
public function scopeFilter($query,array $filters) {
if ($filters['search'] ?? false){
return $query->where('name', 'like', '%' . request('search') . '%')
->orWhere('description', 'like', '%' . request('search') . '%')
->orWhereHas('category', function ($q) {
$q->where('name','like', '%' . request('search'). '%');
});
}
return $query;
}