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 终于成功了。