我正在尝试在 3 个相关表中搜索如下 contracts belongsTo -> company hasMany -> company_addresses。我想在契约(Contract) View 中显示 company_addresses 数据。
contracts
id – integer
company_id - integer
title – string
companies
id - integer
name – string
company_addresses
id - integer
company_id - integer
address – string
complement – string
contact– string
契约(Contract)范本
public function company()
{
return $this->belongsTo(Company::class, 'company_id', 'id');
}
模型公司
public function contracts ()
{
return $this->hasMany(Contract::class);
}
public function addresses()
{
return $this->hasMany(CompanyAddress::class);
}
模型公司地址
public function company()
{
return $this->belongsTo(Company::class);
}
代码合约 Controller
public function index()
{
$contract= Contract::with('companies.company_addresses')->get();
return view(‘contract.view')->with(compact('contract'));
}
那么我做错了什么,我该如何解决呢?任何帮助都是非常有效的。
最佳答案
你生错 child 了。改变这个:
$contract= Contract::with('companies.company_addresses')->get();
对此
$contract= Contract::with('company.addresses')->get();
关于php - 如何加载多级关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49941226/