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