Laravel 5.0 Красноречивые отношения 3-го уровня - PullRequest
0 голосов
/ 27 апреля 2018

у меня три стола

Недвижимость:

  1. PROPERTY_ID
  2. название * * 1 010

Цены на недвижимость:

  1. property_price_id
  2. currency_id
  3. цена

валюта

  1. currency_id
  2. название

Модель недвижимости:

public function PropertyPrice(){
    return $this->hasMany('App\PropertyPrice','property_id');
}

Недвижимость Цена Модель:

 public function Currency(){

         return $this->belongsTo('App\Currency','currency_id');  
}

 public function Property(){

       return $this->belongsTo('App\Property','property_id');
}

Модель валюты

public function PropertyPrice(){

  return $this->hasMany('App\PropertyPrice','currency_id');
}

Теперь я запускаю эту команду Eloquent для получения свойств с ценами,

Property::with('PropertyPrice')->orderBy('ordering','desc')->paginate(10);

но я запутался, как получить название валюты? пожалуйста, обратите внимание, что я видел пример, представленный в официальной документации в разделе «Имеет много сквозного», но это другой пример, я не могу с ним связаться.

помогите пожалуйста, спасибо

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

Я проводил несколько экспериментов и нашел ответ,

Property::with(['PropertyPrice' => function($query){
                                      $query->with('Currency');
                                   }
               ])->orderBy('ordering','desc')->paginate($per_page);
0 голосов
/ 27 апреля 2018
$properties = Property::with('PropertyPrice')->orderBy('ordering','desc')->paginate(10);

затем

foreach ($properties as $property) {
    $currency_title = $property->PropertyPrice->Currency->title;
}

используя ту же логику, вы также можете сделать это в своем представлении

...