Laravel 5.0雄辩的第三级关系

时间:2018-04-27 10:35:19

标签: laravel-5 eloquent relationship

我有三张桌子

属性:

  1. PROPERTY_ID
  2. 标题
  3. 物业价格

    1. property_price_id
    2. currency_id
    3. 货币

      1. currency_id
      2. 标题
      3. 物业模型:

        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);
        

        但我很困惑如何获得货币标题?请注意我已经看到官方文档中提供的示例" Has Many Through"但它是一个不同的例子,我无法与之相关。

        请帮忙,谢谢

2 个答案:

答案 0 :(得分:0)

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

然后

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

使用相同的逻辑,您也可以在视图中执行此操作

答案 1 :(得分:0)

我正在做一些实验并找到答案,

Property::with(['PropertyPrice' => function($query){
                                      $query->with('Currency');
                                   }
               ])->orderBy('ordering','desc')->paginate($per_page);