Matheus Baptista
Criador Matheus Baptista 31/08/2017

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?

Manager Carlos Ferreira 31/08/2017

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/

Carlos Ferreira
Sabe a Solução? Ajude a resolver!

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!