Pergunta

Desculpe pelo meu Inglês

quero duas mesas

Faturas

  • eu ia
  • ID do usuário
  • nome
  • criado em
  • atualização_em

Itens de fatura

  • eu ia
  • ID_fatura
  • título
  • createad_at
  • atualização_em

Modelos

class Invoices extends eloquent{
   public function invoicesitems(){
       return $this->hasMany('Invoicesitem');
   }
}

class Invoicesitems extends eloquent{
   public function invoices(){
       return $this->belongsTo('Invoice');
   }
}

Agora, para atualizar os itens das minhas faturas?Exemplo, minhas faturas têm 5 itens, preciso atualizar para 10 itens

primeiro exclua todos os itens das minhas faturas e insira novos ???

$invoices = Invoices::findOrFail($id);
$dataupdate = array(
  'user_id' => Input::get('user'),
  'name' => Input::get('name'),
);
$invoices->fill($dataupdate);
$invoices->save();

//Ok atualizar faturas, agora como atualizar itens?Te agradece.

Foi útil?

Solução

Se sua lógica de negócios permitir, você poderá simplesmente substituir os itens da fatura.

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

Observação!Esta é uma solução bastante direta.Você pode melhorar usando insert() método em vez de create() para inserção em lote.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top