$Buy_orderModel = Buy_orderModel::with(['users' => function($query) use ($nickname) { $nickname != '' && $query->where('nickname', 'like', '%' . $nickname . '%'); }])->where(function ($query) use ($status) { $status != '-1' && $query->where('status', $status); })->where(function ($query) use ($timeframe , $time_end) { !empty($time_end) && $query->where('create_time','<=',"$time_end"); !empty($timeframe) && $query->where('create_time','>=',"$timeframe"); })->order('id desc')->paginate($limit, false, [ 'query' => $request->param(), ]);
我采用闭包形式,没有报错但是搜索时间功能不能用。
tp5.1有个坑 时间查询的有时间查询语句
$Buy_orderModel = Buy_orderModel::with(['users' => function($query) use ($nickname) { $nickname != '' && $query->where('nickname', 'like', '%' . $nickname . '%'); }])->where(function ($query) use ($status) { $status != '-1' && $query->where('status', $status); })->whereTime('create_time', 'between' ,"$analyze_firstday,$analyze_firstdays")->order('id desc')->paginate($limit, false, [ 'query' => $request->param(), ]);
时间的where 是日期,数据库是时间戳 模型自己会解析不必转换时间戳但格式要正确 我是格式不正确我又转换了
$timeframe = strtotime($request->param('timeframe', '')); if(!empty($timeframe)){ $analyze_firstday = date('Y-m-d H:i:s', $timeframe); $analyze_firstdays = date('Y-m-d H:i:s', $timeframe+86400); }else{ $analyze_firstday=''; $analyze_firstdays=date('Y-m-d H:i:s',time()); }
class Article extends Model { public function cate() { return $this->belongsTo("cate", "cateid", "id", ['article'=>'a', 'cate'=>'c'], 'LEFT'); } }
class Cate extends Model { public function article() { return $this->hasMany("article", "id", "id"); } }