关于thinkphp6中使用了field()将导致模型关联查找不到数据解决方案

案例回放

需求:我只要取profile中的某些字段进行进一步操作。

我们查询到了资料表

$profile = Profile::where('user_id', session('index_user_id'))->field(['avatar','nickname','bio'])->find();

Profile模型中有定义一个一对一的关联关系

    public function old()
    {
        return $this->hasOne(ProfileOld::class);
    }

查看关联数据

 dd($profile->old);

结果是 null

解决方案

使用hidden、visible和append 来对结果集进行控制

//查询出老的资料数据
$profile = Profile::where('user_id', session('index_user_id'))->find();


$needArr = $profile->visible(['avatar','nickname','bio'])->toArray();
上一篇:c# 关于抓取网页源码后中文显示乱码的原因分析和解决方法


下一篇:使用 go 实现优先队列