正如标题所说,我正在尝试访问与一对一关系相关的行,我尝试使用我的模型中的方法,但它仅在结果不是集合时才有效,它也许需要一个更复杂的咨询,你有任何想法如何与雄辩
Empresa模型
public function transferencias_recibidas()
{
return $this->belongsToMany('App\Transferencia_recibir', 'empresa_transferencia_recibir', 'empresa_id', 'transferencia_recibir_id');
}
Transferencia_recibir模型(hasOne关系的倒数)
public function transferencia()
{
return $this->belongsTo('App\Transferencia');
}
这是每个人的需要
$a=$empresa->transferencias_recibidas->find(1)->transferencia
帮助人员的Thx
答案 0 :(得分:1)
雄辩的关系是“延迟加载”,这意味着他们只会在您实际访问它们时加载他们的关系数据。您显示的输出是预期的,因为您没有访问该关系,但您可以通过两种方式加载该关系:
在需要时访问它:
$empresa->transferencias_recibidas->first()->transferencia;
“急切加载”所有transferencia
关系
Empresa::with('transferencias_recibidas.transferencia')->where([ .. ])->get();
第二种方法缓解了N + 1查询问题。由于第一个方法执行N个查询以检索所有关系,而不是查询以检索第二个方法的所有关系。
您可能需要查看eager loading section。