2014-01-09 26 views
0

對不起,我的英語用表hasmany和belongsTo更新許多多個數據?

我想兩個表

發票

  • ID
  • USER_ID
  • created_at
  • update_at

Invoicesitems

  • ID
  • INVOICE_ID
  • 標題
  • createad_at
  • update_at

型號

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(); 

//確定更新發票,現在如何更新項目? 謝謝。

回答

3

如果您的業務邏輯允許 - 您可以更換髮票項目。

$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()來改進。

+0

這個解決方案曾經想過,但想知道是否有另一種解決方法,但我一直在尋找解決方案並應用此方法。 – Alexd2

+0

應該有正確的方法來處理這個要求。然而,更好的解決方案直到獲得正確的方式謝謝 –