我想要的是,当用户访问此链接时/api/bonus?provider[]=MyCompany ,结果将仅显示由 providers=[MyCompany] 提供的奖金。
在我的控制器中:
public function all(Request $request)
{
$size = $request->input('size');
$bonus = Bonus::with('category', 'bonus');
$bonus = Filterer::apply($request, $size, $bonus);
$bonus = Filterer::apply($request, $size, $bonus);
return response()->json([
'code' => 0,
'success' => true,
'data' => BonusResource::collection($bonus),
}
我的预期结果是获得等于的所有提供者,[MyCompany] 但不知何故此查询不起作用。
过滤器
public static function apply(Request $filters, $size, $bonus)
{
if ($filters->has('provider')) {
$bonus->whereHas('bonus', function ($query) use ($filters) {
$query->whereIn('providers', $filters->input('provider',[]));
});
}
return $bonus->paginate($size);
}
但最后我得到了这个结果。数据为空[]。
我想知道为什么我无法获取数据。我做错了哪一部分?
温温酱
斯蒂芬大帝
喵喵时光机