Search code examples
postgresqleloquentlaravel-5.7

Call to undefined relationship in Eloquent, Laravel 5.7


I am four hours in this. I just cannot see the problem. I using Postgres not Mysql.

class ValorVariacao

   public $table = 'valores_variacoes';  

   protected function tipoVariacao()
  {
      return $this->belongsTo('App\TipoVariacao', 'tipo_atributo_id', 'id');
   }

The other class of the relationship.

 class TipoVariacao

  public $table = 'tipos_variacoes';  

 public function valorVariacao() {


    return $this->hasMany('App\ValorVariacao', 'id', 'tipo_atributo_id');


 }

The relevant structure of the table

   valores_variacoes               tipos_variacoes
     id                                 id
   tipo_atributo_id

Calling this I get undefined relationship:

   return ValorVariacao::with('tipoVariacao')->get();

error:

  Call to undefined relationship [tipoVariacao] on model [App\ValorVariacao].

Solution

  • The relationship method has to be public:

    public function tipoVariacao()
    {
       return $this->belongsTo('App\TipoVariacao', 'tipo_atributo_id', 'id');
    }