hasManyThorugh中的访问方法

时间:2018-05-09 08:59:57

标签: laravel eloquent

我有4张桌子,

道具,上市,优惠,联系

道具有很多上市,上市属于道具

  

公共功能列表()       {           返回$ this-> hasMany(' App \ Models \ Listing \ Listing');       }

报价属于上市,

public function property()
{
    return $this->belongsTo('App\Models\Property\Property')->with('owners');
}

然后 提供belongsToMany联系槽offer_contact表

public function buyers()
{
    return $this->belongsToMany(Contact::class, 'offer_contact', 'offer_id', 'contact_id')->with('primary_email');
}

我的问题是,如何访问买家()?

类似于$ props->买家()

在道具模型中,我所做的是

return $this->hasManyThrough('App\Models\Offer\Offer', 'App\Models\Listing\Listing');

2 个答案:

答案 0 :(得分:0)

你做不到。您可以使用嵌套迭代来获取属性,列表属于每个属性,优惠属于每个列表,然后是属于该要约的客户。

或者,您可以使用原始查询来使用DB::statement();

获得所需的结果

答案 1 :(得分:0)

我创建了一个HasManyThrough级的无限关系:Repository on GitHub

安装后,您可以像这样使用它:

class Property extends Model {
    use \Staudenmeir\EloquentHasManyDeep\HasRelationships;

    public function buyers() {
        return $this->hasManyDeep(Contact::class, [Listing::class, Offer::class, 'offer_contact']);
    }
}