2016-04-08 8 views
1

У меня есть 3 модели:Laravel hasManyThrough Eloquent запрос неудача

клиента, магазин, Формат

Клиент имеет много магазинов, и магазин имеет один формат.

Итак, я хотел бы получить все Форматы от Клиента.

In Store table, I have client_id, format_id 

in Format table, I have no direct relationship, I have plan_id 

In Plan table, I have client_id. 

In Client table, I have no useful relationship 

Мне нужно, чтобы получить все форматы клиента,

Поэтому мне нужно создать отношения $ client-> форматы

Так в принципе, я хочу сделать отношения hasManyThrough,

class Client extends Model { 

     protected $table = 'client'; 
     protected $primaryKey = 'clientid'; 



     public function formats() 
     { 
      return $this->hasManyThrough(Format::class,Store::class, 'clientid', 'storeid'); 
     } 

    } 

Но я получаю эту ошибку:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'format.storeid' in 'on clause' (SQL: select `format`.*, `store`.`clientid` from `format` inner join `store` on `store`.`storeid` = `format`.`storeid` where `store`.`clientid` = 58) 

Я немного застрял в этом отношении, любая идея, как его исправить ????

+0

Это больше походит на многом-ко-многим между Клиентом и форматом с магазином является сводной таблицей. –

ответ

0

У вас есть много-ко-многим

class Client extends Model { 

    protected $table = 'client'; 
    protected $primaryKey = 'clientid'; 



    public function formats() 
    { 
     return $this->belongsToMany(Format::class, 'Store_table', 'client_id', 'format_id'); 
    } 

} 
+0

кажется, что работает ... Я все еще не понимаю все о Красноречии ... Tx за вашу помощь! –

+0

что хорошо, что я вам помогу –

+0

Saludos de México! –