thinkphp5关联预载入with指定字段属性查询
如果要指定属性查询,可以使用:注意区别。方法进行关联预载入代替使用。需要同时查询主键id。
·
一、thinkphp5.0
如果要指定属性查询,可以使用:
$list = User::field('id,name')->with(['profile'=>function($query){$query->field('email,phone');}])->select([1,2,3]);
foreach($list as $user){
// 获取用户关联的profile模型数据
dump($user->profile);
}
5.0的话大概率会报错:类的属性不存在:app\admin\model\goodsfile\Goods->id,
这里field需要同时查询主键id

二、thinkphp5.1
如果要指定属性查询,可以使用:注意区别 withField
$list = User::with(['profile' => function($query){
$query->withField('truename,email');
}])->select([1,2,3]);
V5.1.22+版本开始,推荐使用withJoin方法进行关联预载入代替使用setEagerlyType方法定义JOIN方式。
$list = User::withJoin(['profile' => function($query){
$query->withField('truename,email');
}])->select([1,2,3]);
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)