diff --git a/app/admin/controller/v1/Article.php b/app/admin/controller/v1/Article.php index 0ffd0205..94ad0431 100644 --- a/app/admin/controller/v1/Article.php +++ b/app/admin/controller/v1/Article.php @@ -17,7 +17,7 @@ class Article $param = request()->param([ 'title', 'category_id', - 'created_at', + 'release_time', 'page/d' => 1, 'size/d' => 10, ]); @@ -42,18 +42,10 @@ class Article $query->where('category_id', '=', $param['category_id']); } }) - ->withSearch(['title', 'created_at'], (function() use($param) { - $condition = []; - if (isset($param['title'])) { - $condition['title'] = $param['title']; - } - if (isset($param['created_at'])) { - $condition = [ - 'created_at' => explode(',', $param['created_at']) - ]; - } - return $condition; - })()) + ->withSearch(['title', 'release_time'], [ + 'title' => $param['title']??null, + 'release_time' => !empty($param['release_time']) ? explode(',', $param['release_time']) : null + ]) ->order('sort', 'desc') ->paginate([ 'page' => $param['page'], @@ -241,8 +233,8 @@ class Article ->language(request()->lang_id) ->categoryNullable($param['category_id']??null) ->withSearch(['title', 'created_at'], [ - 'title' => $param['title']??'', - 'created_at' => !empty($param['created_at'])?explode(',', $param['created_at']):'' + 'title' => $param['title']??null, + 'release_time' => !empty($param['release_time'])?explode(',', $param['release_time']):null ]) ->order('sort', 'desc') ->select() diff --git a/app/admin/model/v1/ArticleModel.php b/app/admin/model/v1/ArticleModel.php index 2fcdf20e..21f87b41 100644 --- a/app/admin/model/v1/ArticleModel.php +++ b/app/admin/model/v1/ArticleModel.php @@ -31,14 +31,41 @@ class ArticleModel extends ArticleBaseModel // 搜索名称 public function searchTitleAttr($query, $value, $data) { + if (is_null($value)) { + return; + } $query->where('title', 'like', '%' . $value . '%'); } // 搜索发布时间 - public function searchCreatedAtAttr($query, $value, $data) + public function searchReleaseTimeAttr($query, $value, $data) { + if (is_null($value)) { + return; + } if (is_array($value)) { if (count($value) == 2) { + if ($value[0] == $value[1]) { + $value[1] = date('Y-m-d 23:59:59', strtotime($value[1])); + } + $query->whereBetweenTime('release_time', $value[0], $value[1]); + } else { + $query->whereTime('release_time', '>=', $value[0]); + } + } + } + + // 搜索新增时间 + public function searchCreatedAtAttr($query, $value, $data) + { + if (is_null($value)) { + return; + } + if (is_array($value)) { + if (count($value) == 2) { + if ($value[0] == $value[1]) { + $value[1] = date('Y-m-d 23:59:59', strtotime($value[1])); + } $query->whereBetweenTime('created_at', $value[0], $value[1]); } else { $query->whereTime('created_at', '>=', $value[0]);