我正在努力理解laravel中的关系。我在两个表之间建立了关系:预订和收据。收据属于预订,预订有很多收据。 我对基本用法很满意,可以将收据与预订相关联。 但是,我可以解决如何执行更新过程。 从表格我有一个购物车类型的应用程序与一个存储收据来处理预订的购物车,购物车包括现有的收据,用户添加的新收据和用户可能已经删除收据。 有几件我不确定的事情:
如果我只想更新预订记录中的收据详情,我该怎么办?
我试过了:
$reservation->invoice->update();
和
$reservation->invoice->save();
更新属性后,但这些方法出现错误:找不到方法。我是否假设我应该简单地从关系中找到记录并正常更新?
然后另一个相关问题就是逻辑问题。我的购物车将有一个收据集合,可以根据收据表发布或更新。我可以检索一系列收据来进行比较。
这样做的最佳方法是什么。迭代购物车集合或迭代收据集合。我可以根据两个推车之间的信息轻松识别用户想要删除的收据吗?
是否有一个php方法来比较两个集合(我可以转换为数组)并获取要删除的记录的id。
我在这里绕圈子
任何建议表示赞赏
答案 0 :(得分:1)
你在一个问题中提出了很多问题......但我建议你看一下从$ reservation->发票回来的对象。您建议预订和发票是两个独立但一对多的相关实体,因此当您致电$reservation->invoices
时,Laravel会通过返回一组发票模型来帮助您,以便您可以迭代并更新。此外,您可能还想了解如何使用关系方法($reservation->invoices()
)
您的其他问题... PHP Documentation is your friend请参阅:array_diff和array_intersect类型函数