I have a table students with the fields (id, name) and a table named payments with 6 fields (id, date_payment, number_seance, price, total, fk_student)
So, in my Controller Payment I have this (for now)
public function index(Request $request)
{
$user = $request->user();
$payments = Payment::query()
->when($user->hasRole('admin') !== true, function (Builder $query) use ($user) {
$query->where('email', $user->email);
})
->when($request->has('search'), function (Builder $query) use ($request) {
$query->where('name', 'like', '%' . $request->input('search') . '%');
})
->paginate(5);
return view('admin.payments.index', compact('payments'))
->with('display_search', $user->hasRole('admin'));
}
In fact, I have to replace where by whereHas
$query->where('name', 'like', '%' . $request->input('search') . '%');
I don't know how do I have to include the whereHas
Thank you for your help