使用表 hasmany 和 BelongsTo 更新多个数据?
-
21-12-2019 - |
题
对不起我的英语不好
我想要两张桌子
发票
- ID
- 用户身份
- 姓名
- 创建时间
- 更新时间
发票项目
- ID
- 发票编号
- 标题
- 创建位置
- 更新时间
楷模
class Invoices extends eloquent{
public function invoicesitems(){
return $this->hasMany('Invoicesitem');
}
}
class Invoicesitems extends eloquent{
public function invoices(){
return $this->belongsTo('Invoice');
}
}
现在,要更新我的发票项目吗?例如我的发票有 5 个项目,我需要更新到 10 个项目
首先删除我发票的所有项目并插入新的???
$invoices = Invoices::findOrFail($id);
$dataupdate = array(
'user_id' => Input::get('user'),
'name' => Input::get('name'),
);
$invoices->fill($dataupdate);
$invoices->save();
//好的更新发票,现在如何更新项目?感谢您。
解决方案
如果您的业务逻辑允许 - 您可以只替换发票项目。
$invoice = Invoices::findOrFail($id);
$dataupdate = array(
'user_id' => Input::get('user'),
'name' => Input::get('name'),
);
$invoice->update($dataupdate);
// replace invoice items
$invoice->invoicesitems()->delete();
$invoice->invoicesitems()->create($invoiceItems);
笔记!这是非常直接的解决方案。您可以通过使用来改进 insert()
方法而不是 create()
用于批量插入。
不隶属于 StackOverflow