我的代码当前不起作用,但是我的关系是正确的。
项目模型
normal
找不到“ spent_on”。
答案 0 :(得分:1)
您似乎正在尝试限制该关系的记录。我建议查看有关限制急切加载的文档。这是我认为您要完成的代码示例:
$projects = App\Model\Project::with(['timeEntries' => function ($query) use ($request) {
$query->whereBetween('spent_on', $request->debut, $request->fin);
}])->get();
https://laravel.com/docs/5.8/eloquent-relationships#constraining-eager-loads
答案 1 :(得分:0)
就像@aynber所写的那样,如果您的spent_on
属性是相关模型的一部分,则应将其包含在查询中并带有闭包。
$array_of_project = Project::with(['timeEntries' => function ($time_entry) use ($request) {
$time_entry->whereBetween('spent_on', [$request->input('debut'), $request->input('fin')]);
}])->get();
答案 2 :(得分:0)
如果spent_on
是time_entries
表中的一列,则您的whereBetween
是不正确的,因为它会在projects
表中查找。但是您可以改为将其添加到with
:
$array_of_project = Project::with(['timeEntries' => function($query) use ($request) {
return $query->whereBetween('spent_on', [$request->input('debut'), $request->input('fin')]);
})->get();