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

时间:2014-08-18 10:26:50

标签: php laravel laravel-4

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

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

  • 编辑Person
  • 时显示它们
  • 允许他们在第一个实例中保存
  • 允许将来更新

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

到目前为止,我已经设法以一种方式发送表单数据,这意味着我得到一个包含Appointment模型的完整详细信息的数组,我可以将其转换为Appointment模型和然后保存它们。虽然它感觉不是很优雅,但我认为可能有更好的方法来做到这一点。

1 个答案:

答案 0 :(得分: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++;
}