'Laravel Multiple Filtering
I want to get multiple categories data but I can't. when i was use this query without foreach I get only one row
My Query
$category=$request->category;
$rating=$request->rating;
$level=$request->level;
$cats=Str::of($category)->explode(',');
$filters=Book::when($cats, function($query,$cats){
foreach($cats as $cat)
{
$query->where('catid',$cat);
}
})
->when($rating, function($query,$rating){
$query->where('rate_avg','>=',$rating);
})
->when($level, function($query,$level){
$query->where('levelid',$level);
})
->get();
return response()->json($filters);
Input= api/get?category=1,2&rating=2
Output (catid 2 did not come)
{
"id": 3,
"bname": "Book 3",
"bwriter": "Author 3",
"catid": 1,
"levelid": 3,
"book_length": 234,
"summary": "Summary 3",
"rate_avg": "3.00",
"created_at": "2022-02-12T13:09:31.000000Z",
"updated_at": "2022-02-12T13:18:26.000000Z"
}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
