新增了获取科普文章列表接口

This commit is contained in:
2024-11-01 11:39:21 +08:00
parent 25e75d4f6d
commit d0e4be6c45
4 changed files with 99 additions and 5 deletions
+34 -1
View File
@@ -80,7 +80,7 @@ class ArticleScience extends Model
}
/**
* 获取列表
* 获取列表-分页
* @param string $keyword
* @param array $article_science_params 搜索条件
* @param array $article_science_class_params 分类搜索条件
@@ -120,4 +120,37 @@ class ArticleScience extends Model
return $data;
}
/**
* 获取列表
* @param string $keyword
* @param array $article_science_params 搜索条件
* @param array $article_science_class_params 分类搜索条件
* @param array $fields
* @param int $limit
* @return Collection|array
*/
public static function getArticleScienceList(string $keyword = "", array $article_science_params = [], array $article_science_class_params = [], array $fields = ["*"], int $limit = 10): Collection|array
{
$query = self::with(['ArticleScienceSource'])
->where($article_science_params)
->when($keyword, function ($query, $keyword) {
$query->where(function ($query) use ($keyword) {
$query->orwhere("article_title", 'like', '%' . $keyword . '%');
$query->orWhereHas('ArticleScienceSource', function ($query) use ($keyword) {
$query->where('source_name', 'like', '%' . $keyword . '%');
});
$query->orWhereHas('ArticleScienceClass.BasicArticleClass', function ($query) use ($keyword) {
$query->where('basic_class_name', 'like', '%' . $keyword . '%');
});
});
})
->whereHas('ArticleScienceClass.BasicArticleClass', function ($query) use ($article_science_class_params) {
$query->where($article_science_class_params);
});
$data = $query->limit($limit)->get($fields);
return $data;
}
}