$data = Program::with('peserta', function ($query) {
return $query->peserta()->whereBetween('tanggal', array($request->from, $request->until));
})->get();
this code return error :
mb_strpos() expects parameter 1 to be string, object given", exception: "ErrorException".
Help. thanks
CodePudding user response:
Closure function inside with()
must be array and remove that return
. Example in laravel doc
$data = Program::with(['peserta' => function ($query) use($request) {
$query->whereBetween('tanggal', array($request->from, $request->until));
}])->get();
CodePudding user response:
you should using whereHas to set condition for relationship:
$data = Program::whereHas('peserta', function ($query)use($request) {
return $query->whereBetween('tanggal', array($request->from, $request->until));
})->get()
and if you need have relationship data should be add 'with' to the query:
$data = Program::whereHas('peserta', function ($query)use($request) {
return $query->whereBetween('tanggal', array($request->from, $request->until))->with('peserta');
})->get()