首页 文章

在Laravel中保存/更新一对多关系

提问于
浏览
1

我想知道保存(第一次)或更新与Laravel的一对多关系时最好的方法是什么 .

在一个简单的级别,我有一个 Person 模型,可以有多个与之关联的 Appointment 模型 . 这些关系 Build 在模型本身上,但现在我需要能够;

  • 编辑 Person 时显示它们

  • 允许它们保存在第一个实例中

  • 允许将来更新它们

棘手的部分是我希望它们嵌入在表单中以编辑 Person 本身,而不是在单独的页面上 . 因此, Appointment 的字段显示在 Person 表单中间的可扩展表中 .

到目前为止,我已经设法以一种方式发送表单数据,这意味着我得到一个包含 Appointment 模型的完整细节的数组,我可以将其转换为 Appointment 模型然后保存它们 . 它没有想到可能有更好的方法来做到这一点 .

1 回答

  • 0

    几天前我也遇到了这个问题,并认为修改所有约会的最佳方法是发送数据,并在所有数据库条目之间循环并逐个更新 . 当然,您无法使用单一功能来创建和修改约会,因此您可能会为最终用户查看两个视图 . 一个用于创建约会,另一个用于修改约会 .

    因此,如果您发送的数据类似于:

    appointment[0]
    appointment[1]
    appointment[2]
    

    在您的控制器中,您可以执行查询以检索所有约会,例如

    $appointments = Appointment::where('user_id','=',$userid)->get();
    

    并执行每个约会的循环以使用foreach更新内容 .

    $i=0;
    foreach($appointments as $appointment){
        $appointment->date = Input::get('appointment')[$i];
        $appointment->save();
        $i++;
    }
    

相关问题