1
resposta

[Dúvida] Problema no relacionamento entre as tabelas

Estou desenvolvendo uma aplicação para atribuir o parâmetro carreira dentro de cada cargo.

Exemplo de um registro da tabela da model cargo com o idcarrreira: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Rergistro da model carreira:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Model do cargo

class Cargo extends Model
{
    use HasFactory;
    protected $fillable = ['nome','multiplicador','cltmin','cltmax','pjmin','pjmax'];

    public function carreira()
    {
        return $this->hasOne(Carreira::class,'id','idcarreira');
    }
}

Model da carreira

class Carreira extends Model
{
    use HasFactory;
    protected $fillable = ['nome'];
}

no controller do cargo qunado uso o dd($cargo->carreira());

não retorna os dados da carreira, parece que ele não passa a tabela

 #model: App\Models\Carreira {#1307 ▼
      #connection: "sqlite"
      #table: null
      #primaryKey: "id"
1 resposta

Olá, Raphael! Tudo bem com você?

Peço desculpa pela demora para responder o seu tópico.

Uma possível solução para esse problema é verificar se os nomes das colunas nas tabelas estão corretamente configurados. Certifique-se de que o nome da chave estrangeira na tabela "cargo" é "idcarreira" e que o nome da chave primária na tabela "carreira" é "id". Além disso, verifique se os nomes das tabelas estão corretamente definidos nos modelos "Cargo" e "Carreira".

Certifique-se de que os parâmetros estão corretos, sendo o primeiro o nome da classe do modelo relacionado, o segundo o nome da chave primária da tabela relacionada e o terceiro o nome da chave estrangeira na tabela atual.

Por fim, verifique se as migrations estão corretamente configuradas, ou seja, se as colunas e relacionamentos estão sendo criados corretamente nas tabelas do banco de dados.

Espero que essas sugestões possam te ajudar a resolver o problema. Se ainda tiver alguma dúvida, estou à disposição!

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.