refactor: 修改文章发布时间搜索
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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]);
|
||||
|
||||
Reference in New Issue
Block a user