Atualizar muitos dados múltiplos com tabelas hasmany e pertenceTo?
-
21-12-2019 - |
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.
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