У меня есть простой запрос в моей модели для получения данных.Теперь я хочу выполнить поиск с companyname
. Моим кодом запроса:
$searchablePost = Post::with(['product','postattribute.attribute.category','user.userDetails'])
->whereIn('status',$is_or_active)
->whereIn('product_id', $userApprovalProductIDs)
->whereIn('demand_or_supply', $is_demand_supply)
->offset($offset)->limit($limit)
->orderBy('id','desc');
Теперь я получил 6 rows
в этом 6 rows
Я хочу отфильтровать данные с companyname
, которые я получаю через запятуюabcCompany,indCompany
.
array:2 [
0 => "abccompany"
1 => "indcompany"
]
Что я пытаюсь:
if($companyname !="") {
$companyDetail = Explode(',',$companyname);
$searchablePost->whereHas('user.userDetails', function ($query) use ($companyDetail) {
$i=1;
foreach ($companyDetail as $search_with_compayname) {
if(count($companyDetail)>0 && $i==1) {
$query->where('company','LIKE',"%{$search_with_compayname}%");
} else {
$query->orWhere('company','LIKE',"%{$search_with_compayname}%");
}
$i++;
}
});
}
Это хорошо или есть какой-то другой способ хорошего поиска?