[PROMOÇÃO] Assine com + 30% de desconto ANUAL MENSAL (últimas horas)
Marcos Birro Calixto
Criador Marcos Birro Calixto 30/06/2021

Carlos, bom dia.

Tenho um relacionamento como abaixo:

    public function tipoprojetos() 

    {

        return $this->belongsToMany(TipoProjeto::class);

    }

Eu trazer um nome diferente do padrao do eloquent camel-case tipo
return $this->belongsToMany(TipoProjeto::class, 'tipoprojeto_id');

como faço isto?

 
Criador Marcos Birro Calixto 30/06/2021

Quando eu faço essa consulta:

$tipoprojetos = $projeto->tipoprojetos()->paginate();

Recebo esse sql com a chave errada. Não é tipo_projeto_id e sim tipoprojeto_id

Eu teria que ter definidor tipo_projeto_id na tabela pivot?

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'projeto_tipo_projeto.tipo_projeto_id' in 'on clause' (SQL: select count(*) as aggregate from `tipo_projetos` inner join `projeto_tipo_projeto` on `tipo_projetos`.`id` = `projeto_tipo_projeto`.`tipo_projeto_id` where `projeto_tipo_projeto`.`projeto_id` = 1 and `tipo_projetos`.`deleted_at` is null)

Marcos Birro Calixto
Manager Carlos Ferreira 30/06/2021

Olá, Marcos!
Tudo bem?

Vou te esplicar com detalhes o método belongsToMany

$this->belongsToMany(NomeDoModelRelacionado::class, 'nome_da_tabela_pivo', 'coluna_relaciona_id_local', 'coluna_relaciona_id_outro_model');

Se você explorar bem o Laravel, e usar nomes mais coesos para as tabelas criar esses relcionamentos será algo muito mais simples.

Tudo isso poderia se resumir em:
public function types()
{
    return $this->belongsToMany(Type::class);
}

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

Precisa estar logado para conseguir responder a este ticket!

Clique Aqui Para Entrar!