问题描述
usermodel 有许多线索,每个线索可以有一个 propertyLead,每个 propertyLead 可以有许多附件。 下面列出了每种型号,
用户模型:
public function leads()
{
return $this->hasMany('App\Models\Leads','fk_user_id');
}
潜在客户模型:
public function propertyLead()
{
return $this->hasOne('App\Models\PropertyLead','fk_lead_id');
}
PropertyLeadModel:
public function attachments()
{
return $this->hasMany('App\Models\Attachments','fk_property_lead_id');
}
现在,我正在使用 laravel 的 Lazy Eager Loading 从数据库中读取数据,到目前为止我能够访问 PropertyLeadModel 但我无法理解如何访问附件关系属性领导模型,
$leads = User::find(Auth::user()->id)->leads->load('propertyLead');
所以用户给了我线索,线索给了我 propertyLead,但无法理解如何深入到 propertyLeadModel 中的附件。
请帮我理解。 谢谢。
解决方法
试试这个,没有测试
$leads = Auth::user()->leads->load('propertyLead','propertyLead.attachments');
,
您可以使用“点”表示法加载嵌套关系。
$user = Auth::user();
$user->load('leads.propertyLead.attachments');
// see all relationships loaded
dd($user);
由于潜在客户和附件是“许多”关系,因此它们将是您必须遍历才能访问任何特定实例的集合。
,试试这个
User::with('leads.propertyLead.attachments')->where('id',Auth::user()->id)->first();