如何使用 eloquent / etc 和 laravel 编写关系函数?
how to write function in relationship using eloquent / etc with laravel?
$data = Program::with('peserta', function ($query) {
return $query->peserta()->whereBetween('tanggal', array($request->from, $request->until));
})->get();
此代码return错误:
mb_strpos() expects parameter 1 to be string, object given",
exception: "ErrorException".
求助。谢谢
with()
中的闭包函数必须是数组并删除 return
。 Example in laravel doc
$data = Program::with(['peserta' => function ($query) use($request) {
$query->whereBetween('tanggal', array($request->from, $request->until));
}])->get();
您应该使用 whereHas 设置关系条件:
$data = Program::whereHas('peserta', function ($query)use($request) {
return $query->whereBetween('tanggal', array($request->from, $request->until));
})->get()
如果您需要关系数据,应将 'with' 添加到查询中:
$data = Program::whereHas('peserta', function ($query)use($request) {
return $query->whereBetween('tanggal', array($request->from, $request->until))->with('peserta');
})->get()
$data = Program::with('peserta', function ($query) {
return $query->peserta()->whereBetween('tanggal', array($request->from, $request->until));
})->get();
此代码return错误:
mb_strpos() expects parameter 1 to be string, object given", exception: "ErrorException".
求助。谢谢
with()
中的闭包函数必须是数组并删除 return
。 Example in laravel doc
$data = Program::with(['peserta' => function ($query) use($request) {
$query->whereBetween('tanggal', array($request->from, $request->until));
}])->get();
您应该使用 whereHas 设置关系条件:
$data = Program::whereHas('peserta', function ($query)use($request) {
return $query->whereBetween('tanggal', array($request->from, $request->until));
})->get()
如果您需要关系数据,应将 'with' 添加到查询中:
$data = Program::whereHas('peserta', function ($query)use($request) {
return $query->whereBetween('tanggal', array($request->from, $request->until))->with('peserta');
})->get()