我有一个关系数据库,其中有以下表格:
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而无需加载任何中间表数据。有没有一种使用具有单通/多态关系或任何其他关系方式的方法来获取数据。或者,您可以建议一种更好的方法来设置我的表以获取数据。