Olá Daniel tudo bem? Espero que sim!
Peço desculpa pela demora para responder o seu tópico.
Existem algumas maneiras de se fazer isso no Laravel, uma delas é que você pode representar as entidades "Pessoa", "Civil" e "Juridica" usando o conceito de herança e a funcionalidade de modelos Eloquent.
A classe "Pessoa" pode ser a classe pai, enquanto as classes "Civil" e "Juridica" podem ser as classes filhas. Para configurar essa estrutura de herança, você pode usar o recurso de herança de modelos do Laravel. Aqui está um exemplo de como você pode fazer isso:
use Illuminate\Database\Eloquent\Model;
class Pessoa extends Model
{
// Configurações da classe Pessoa
public function civil()
{
return $this->hasOne(Civil::class);
}
public function juridica()
{
return $this->hasOne(Juridica::class);
}
}
class Civil extends Pessoa
{
// Configurações da classe Civil
}
class Juridica extends Pessoa
{
// Configurações da classe Juridica
}
No primeiro método do exemplo, a classe "Pessoa" herda do modelo "Eloquent Illuminate\Database\Eloquent\Model". Em seguida, as classes "Civil" e "Juridica" estendem a classe "Pessoa".
Dentro da classe "Pessoa", você pode definir os relacionamentos com as classes filhas usando os métodos hasOne()
. No exemplo acima, defini os métodos civil()
e juridica()
, que estabelecem um relacionamento de "um para um" entre a classe "Pessoa" e as classes "Civil" e "Juridica", respectivamente.
Essa estrutura permitirá que você acesse os dados das entidades filhas através dos relacionamentos definidos. Por exemplo, se você tiver um objeto da classe "Pessoa", poderá acessar os dados relacionados à entidade "Civil" chamando $pessoa->civil
ou os dados relacionados à entidade "Juridica" chamando $pessoa->juridica
.
Espero que isso esclareça sua dúvida! Se você tiver mais perguntas, estarei à disposição.
Grande abraço e bons estudos!
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.