当通过with()进行联表查询的话如果条件中有between time时间区间查询的话会报错说with()关联预载入的表不存在。如下代码:
$list = $this->model
->with('user,level')
->where($where)
->order($sort, $order)
->limit($offset, $limit)
->select();
在model中通过关联预载入定义相对关联,如下:
public function user()
{
return $this->belongsTo('User','user_id','user_id')->setEagerlyType(0);
}
where条件如下:
$where = [
[
'user.create_time',
'BETWEEN time',
[
'2018-05-01 00:00:00',
'2018-05-31 23:59:59'
]
]
];
当搜索条件中有between time进行时间区间查询时会出现如下报错:
SQLSTATE[42S02]: ba
可以看出表名没有前缀。
当前TP版本为5.0.20
最佳答案