thinkphp5.1 关联查询

编程入门 行业动态 更新时间:2024-10-26 09:33:32

thinkphp5.1 关联查询

thinkphp5.1 关联查询

关联查询使用with查询

$users = User::with(['profile'	=> function($query) {$query->field('name,email');
}])->select();
foreach ($users as $user) {echo $user->profile->name;
}

如果查询数据时,没有数据,则不返回整条信息,则使用 hasWhere,进行查询

// 查询用户昵称是think的用户
// 注意第一个参数是关联方法名(不是关联模型名)
$users = User::hasWhere('profile', ['nickname'=>'think'])->select();// 可以使用闭包查询
$users = User::hasWhere('profile', function($query) {$query->where('nickname', 'like', 'think%');
})->select();

使用 hasWhere ,时,必须 放在最前面,如果关联的数据为空,则整条都不返回,且即使使用 闭包查询也无效,都必须要有数据才返回,闭包只作为2次限制使用,未查询到数据,则不返回(前提,关联数据必须要有数据)

PS:使用 hasWhere 后,field 失效($this->field(‘id’))无效,需要使用下面的方式进行查询

$data = PayOrderModel::hasWhere('user', ['id'=>$this->USER->id], 'order_title,order_number,order_price,pay_type,actual_price,pay_time')//->field('order_title,order_number,order_price,pay_type,actual_price,pay_time')->where('status', ['=',2], ['=',4], 'or')//->order('id','desc')//下面这两种方式任选一种//使用表名//->order('pay_order.id','desc')//使用模型名->order('PayOrderModel.id','desc')->limit($start,$limit)->select();

更多推荐

thinkphp5.1 关联查询

本文发布于:2023-12-04 19:27:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1661989.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!