Join 雄辩:嵌套关系返回null

Join 雄辩:嵌套关系返回null,join,nested,eloquent,Join,Nested,Eloquent,问题 我想得到一个坎帕金的信息,以及所有角色的信息。但我也想要人物肖像。当我尝试这样做时,我得到的是信息和人物,但不是肖像 活动模式 public function player_characters() { return $this->hasMany('Sagohamnen\Character\Character', 'campaign_id')->select('id','campaign_id', 'name', 'portrait_id')->where

问题 我想得到一个坎帕金的信息,以及所有角色的信息。但我也想要人物肖像。当我尝试这样做时,我得到的是信息和人物,但不是肖像

活动模式

public function player_characters()
{
        return $this->hasMany('Sagohamnen\Character\Character', 'campaign_id')->select('id','campaign_id', 'name', 'portrait_id')->where('characters.type', 1)->where('characters.status', 1);
}
public function thumb_portrait()
{
    return $this->belongsTo('Sagohamnen\Portrait\Portrait')->select('thumbnail', 'id');
}
角色模型

public function player_characters()
{
        return $this->hasMany('Sagohamnen\Character\Character', 'campaign_id')->select('id','campaign_id', 'name', 'portrait_id')->where('characters.type', 1)->where('characters.status', 1);
}
public function thumb_portrait()
{
    return $this->belongsTo('Sagohamnen\Portrait\Portrait')->select('thumbnail', 'id');
}
雄辩的质疑

return Campaign::select('id', 'genre', 'name', 'description',
'max_nr_players', 'rating', 'created_at', 'updated_at')->where('id',
$campaign_id)->with('player_characters.thumb_portrait')->first();
结果

string(139) "select `id`, `genre`, `name`, `description`, `max_nr_players`, `rating`, `created_at`, `updated_at` from `campaigns` where `id` = ? limit 1"
array(1) {
  [0]=>
  string(1) "1"
}
string(165) "select `id`, `campaign_id`, `name`, `portrait_id` from `characters` where `characters`.`type` = ? and `characters`.`status` = ? and `characters`.`campaign_id` in (?)"
array(3) {
  [0]=>
  int(1)
  [1]=>
  int(1)
  [2]=>
  int(1)
}
string(71) "select `thumbnail`, `id` from `portraits` where `portraits`.`id` in (?)"
array(1) {
  [0]=>
  int(0)
}
字符数据库表

id - name - portrait_id
1    Gandalf  3
id - thumbnail
3  -  http://wwww....
纵向数据库表

id - name - portrait_id
1    Gandalf  3
id - thumbnail
3  -  http://wwww....

当我将关系方法“thumb\u-grait”更改为“grait”时,将显示肖像数据。显然,relation方法应该与外键具有相同的名称(除非我将自定义外键作为第二个参数传递)

根据有关oneToMany inverse的文档:

Eloquent通过检查名称来确定默认外键名称 的关系方法,并将方法名称后缀为_id