在laravel中从模型中调用子关系

时间:2016-07-30 11:19:33

标签: eloquent laravel-5.2 eager-loading

我想用产品和图片获取类别。我有以下关系: 产品型号

class Product extends Model
{


    public function productCategory() {

        return $this->belongsToMany('ProductCategory');
    }

    public function addtionalImages() {

        return $this->hasMany('ProductImage');
    }
}

产品类别模型

class ProductCategory extends Model
{

    public function product() {

       return $this->hasMany('Bazar\Models\Product', 'product_catid')
                ->orderBy('id', 'DESC')->limit(10);
    }  
}

这就是我使用渴望加载的方式:

$categories = ProductCategory::select('product_categories.*')
              ->with(['product'])->Paginate(20);

这会返回类别和产品而不是additionalImage,图片与不属于类别的产品相关,我尝试了->with(['product', 'addtionalImages'])但没有成功,任何人都可以让我知道我错过了什么?或者我如何实现?

解决

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,然后发布了答案,这对其他人有帮助。

$categories = ProductCategory::select('product_categories.*')
          ->with(['product', 'product.addtionalImages'])->Paginate(20);

使用product.addtionalImages我可以访问相关关系的方法。