Home > Net >  how to write function in relationship using eloquent / etc with laravel?
how to write function in relationship using eloquent / etc with laravel?

Time:12-13

$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()
  • Related