Eloquent: $this->hasOne/->with('model') returns 为空,即使查询日志显示有效查询
Eloquent: $this->hasOne/->with('model') returns null, even though the querylog shows a working query
我定义的两个模型是一对一的关系,我定义为:
人:
public function contact(): HasOne
{
return $this->hasOne(Contactdata::class,'person_id', 'id');
}
联系方式:
public function person(){
return $this->belongsTo(Person::class);
}
在一个名为“Userform”的控制器中,我有两个方法,它们查询人员模型。
我查询单个记录的地方
...
$person['contact'] = Person::find($id)->contact->toArray();
...
工作完美并且 return 是联系人数据,而我想打印列表的那个不工作:
$result = Person::with(['details', 'contact'])->get();
数组键 'details' 填充了数据库结果并工作,而 'contact' 只是 return 为空,即使查询日志清楚地显示,对 contactdatas 的查询是正确的,如果手动执行 return 正确的结果集。
我是不是漏掉了什么?
经过几个小时的努力,我解决了它。
出于某些奇怪的原因,当获取单个记录时,它会忽略 person_id 命名中的拼写错误:即使列名是 person_Id(大写 i),结果在查询单个记录时有效,但在请求多个记录时无效。所以我只是将 person_Id 重命名为 person_id 终于成功了。
我定义的两个模型是一对一的关系,我定义为:
人:
public function contact(): HasOne
{
return $this->hasOne(Contactdata::class,'person_id', 'id');
}
联系方式:
public function person(){
return $this->belongsTo(Person::class);
}
在一个名为“Userform”的控制器中,我有两个方法,它们查询人员模型。
我查询单个记录的地方
...
$person['contact'] = Person::find($id)->contact->toArray();
...
工作完美并且 return 是联系人数据,而我想打印列表的那个不工作:
$result = Person::with(['details', 'contact'])->get();
数组键 'details' 填充了数据库结果并工作,而 'contact' 只是 return 为空,即使查询日志清楚地显示,对 contactdatas 的查询是正确的,如果手动执行 return 正确的结果集。
我是不是漏掉了什么?
经过几个小时的努力,我解决了它。
出于某些奇怪的原因,当获取单个记录时,它会忽略 person_id 命名中的拼写错误:即使列名是 person_Id(大写 i),结果在查询单个记录时有效,但在请求多个记录时无效。所以我只是将 person_Id 重命名为 person_id 终于成功了。