关于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();


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM