2016-10-02 5 views
2

У меня есть таблица пользователей, которая имеет отношение hasOne с таблицей vendordetails.Laravel eloquent relationship fetch records до третьего уровня отношений

class User extends Authenticatable 
{ 
    public function vendor_details() { 
     return $this->hasOne('App\Vendordetail'); 
    } 
} 

На другой стороне стола vendordetails содержит COUNTRY_ID, state_id и CITY_ID и имеет отношение belongsTo со страной, государством и городской модели.

Vendordetail.php модель: -

class Vendordetail extends Model 
{ 
    public $timestamps = false; 

    public function this_country(){ 
     return $this->belongsTo('App\Country', 'country_id'); 
    } 

    public function this_state(){ 
     return $this->belongsTo('App\Country', 'state_id'); 
    } 

    public function this_city(){ 
     return $this->belongsTo('App\Country', 'city_id'); 
    } 

} 

Как я получать отчеты страны, штата и города, если я запрос на таблице пользователей.

$user = User::with('vendor_details')->first(); 

В этом запросе он находит только результат таблицы vendordetails, мне также нужны страна, штат и город.

Благодаря

+0

попробовать что-то вроде $ пользователя = User :: с ('vendor_details.othe_relationship') -> первый(); – Chintan7027

ответ

4

Чтобы получить доступ к вложенным отношения

$user = User::with(['vendor_details.this_state','vendor_details.this_country','vendor_details.this_city'])->first();

+0

Thankyouuuuu, я не думал так думать – Pankaj

Смежные вопросы