我有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');
答案 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']);
}
}