对不起我的英语不好

我想要两张桌子

发票

  • 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() 用于批量插入。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top