官方文档介绍:V5.0.4+
版本开始一对一关联预载入支持两种方式:JOIN
方式(一次查询)和IN
方式(两次查询),如果要使用IN
方式关联预载入,在关联定义方法中添加。
这句话的意思是jion方式关联和用in方式关联两种方式,in方式关联可以理解为先查出id,在用查出来的id去in另外一个表,也就是做了两次查询。
以下例子:当设置setEagerlyType为1时,由于用的是in方式,所以用category.name是查不到关联数据的
//在goods模型中设置关联模型category
public function category(){
return $this->belongsTo('Category', 'goods_category_id', 'id', [], 'LEFT')->setEagerlyType(0);
//return $this->belongsTo('category','goods_category_id','id');
}
//goods表关联分类表
$list = $this->model->with(['category'])->where($where)->order($sort, $order)
->paginate($limit);