我正在检索一些关系:
$requirements = Requirement::with([
'countryMatch',
'applier',
'doc' ])->get();
和我的模型要求包含:
public function doc()
{
return $this->belongsTo(Doc::class);
}
现在一切都很好。
由于我的Doc模型有自己的关系:
public function translation($language = null)
{
if ($language == null) {
$language = /*App::getLocale()*/'en';
}
return $this->hasMany('App\DocTranslation')->where('language', '=', $language);
}
我想直接在第一个'中找到这种关系。声明,如下:
$requirements = Requirement::with([
'countryMatch',
'applier',
'doc->translation()' ])->get();
但我收到错误:
Call to undefined relationship [doc->translation()] on model [App\Requirement].
那是因为关系翻译在Doc模型中而不是在Requirement中。
答案 0 :(得分:0)
嵌套with()
调用使用点表示法,而不是对象表示法。将其更改为'doc.translation'
。请注意,我不确定您是否可以急切地加载包含应用程序逻辑的关系。
答案 1 :(得分:0)
对于嵌套关系,请使用dot like announcement.advertiser
$requirements = Requirement::with([
'countryMatch',
'applier',
'doc',
'doc.translation'])->get();