Salvar Multiplas tabelas único Controller
Olá Professor, boa tarde!
Pode me ajudar por favor?.
Eu tenho 3 tabelas a qual necessito inserir os dados ao mesmo tempo quando eu salvar no formulário.
Ex: Tabela principal -> Moviment (campo vehicle_id) / Tabela 2 cartMoviment (campo vehicle_id) / Tabela 3 documents, na CartMoviment eu salvo alguns dados que o usuário preenche e pego o Moviment_id da principal e salvo na 2 e assim faço também na tabela 3 documents.
O problema: Ao salvar na tabela cartMoviment, mesmo isolando as requests para cada create, ele está pegando o valor do campo da moviment vehicle_id e salvando esse valor na cartMovient campo vehicle_id, mesmo passando no front os forms diferentes.
-----------
---------
Olá, Jean!
Tudo bem?
Ajudo sim;
Vou te dar um exemplo de como fazer:
DB::beginTransaction();
try {
$dataTable1 = $request->only('val1', 'val2');
$model1 = Model::create($dataTable1);
$dataTable2 = $request->only('val3', 'val4');
$dataTable2['fk_tabela_01'] = $model1->id;
$model2 = Model::create($dataTable1);
// o código acima poderia ser feito assim:
$dataTable2 = $request->only('val3', 'val4');
$model1->nomeRelacionamento->create($dataTable2);
DB::commit();
} catch (\Throwable $e) {
DB::rollBack();
thrown $e;
}
Pegou a ideia?
(https://laravel.com/docs/9.x/database#database-transactions)
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!