直接从Laravel中的4步深度关系获取数据

时间:2019-06-21 23:24:13

标签: laravel-5.8

我有一个关系数据库,其中有以下表格: users, business_informations, todays_pricing, daily_margins。而我的表结构是:

user: id

business_informations: - id - user_id - company_name

todays_pricing: - id - user_id

daily_margins: - id - todays_pricing_id

它们之间的关系是:

App \ User.php

public function business_information()
{
return $this->hasOne(BusinessInformation::class);
}

public function todays_pricing()
{
return $this->hasMany(TodaysPricing::class);
}

App \ TodaysPricing.php

public function user()
{
return $this->belongsTo(User::class);
}
public function daily_margin()
{
return $this->hasOne(DailyMargin::class);
}

App \ DailyMargin.php

public function todays_pricing()
{
return $this->belongsTo(TodaysPricing::class);
}

我在这里没有问题,我可以根据需要获取所有数据。但是我有一种情况,我必须将公司名称从BusinessInformation.php更改为DailyMargin.php。我可以按照以下方式做到这一点,

$dailyMarginWithCompanyName = DailyMargin::with('todays_pricing.user.business_information')->get();

但是它正在加载todays_pricing + user + business_information表的所有数据。

我想要的是直接获取company_name而无需加载任何中间表数据。有没有一种使用具有单通/多态关系或任何其他关系方式的方法来获取数据。或者,您可以建议一种更好的方法来设置我的表以获取数据。

0 个答案:

没有答案