我在$task
和$moment
之间存在一对多的关系。这么多时刻属于任务。
在编辑任务时,我正在添加这样的时刻:
api.php隐含:
Route::put('tasks/{task}', 'PetController@updateTask');
public function updateTask(Request $request, Task $task) {
foreach ($request->moments as $requestMoment) {
$task->moments()->create($requestMoment);
}
$task->fresh();
foreach($task->moments as $moment) {
// logging out $moment
}
}
当我第二次foreach
时,它找不到新创造的时刻。我甚至在第二次迭代之前做了$task->fresh()
,但它仍然没有找到新创建的。
答案 0 :(得分:3)
表单docs要仅在尚未加载关系时加载关系,请使用loadMissing
方法:
public function updateTask(Request $request, Task $task) {
foreach ($request->moments as $requestMoment) {
$task->moments()->create($requestMoment);
}
$task->loadMissing('moments');
foreach($task->moments as $moment) {
// logging out $moment
}
}
答案 1 :(得分:1)
使用$task->with('moments')->fresh()
包含关系。
或$task->load('moments')
其中一个应该有用。