Generalização
[Finalizado Pelo Aluno]
Olá, terminei o curso de Laravel Relationships e gostaria de saber se é possível fazer generalização das tabelas com laravel.
Por exemplo, tenho uma tabela Pessoa com caracteristicas gerais de uma pessoa, e outra chamada PessoaFisica, com caracteristicas mais genéricas de pessoa física. É possível criar um formulario com os campos das duas tabelas juntos e inserir nelas corretamente?
Olá, Matheus!
Tudo bem?
É possível sim! =D
Você pode criar o formulário para receber todos os dados, tanto de Pessoa, quanto de Pessoa Física.
O que precisa se atentar é no momento de cadastrar, para cadastrar cada item em sua tabela.
Você pode no controller receber todos os dados em uma única variável e inserir o array através da Model, neste caso precisa ter o $fillable na Model especificando quais campos podem ser preenchidos.
Exemplo:
public function store(Pessoa $pessoa, PessoaFisica $pfis, Request $request)
{
$data = $request->all();
$pessoa = $pessoa->create($data);
//Se precisar relacionar: $data['id_pessoa'] = $pessoa->id;
$newPfis = $pfis->create($data);
}
P.S. Não pode esquecer de criar um atributo $fillable nas Models especificando quais campos podem ser preenchidos.
Neste cenário recomendo trabalhar com Database Transactions: https://blog.especializati.com.br/database-transactions-no-laravel/
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!