This repository has been archived on 2024-07-11. You can view files and clone it, but cannot push or open issues or pull requests.
yoshop/source/application/api/model/Article.php
2020-04-25 22:20:29 +08:00

88 lines
2.0 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\api\model;
use app\common\exception\BaseException;
use app\common\model\Article as ArticleModel;
/**
* 商品评价模型
* Class Article
* @package app\api\model
*/
class Article extends ArticleModel
{
/**
* 追加字段
* @var array
*/
protected $append = [
'show_views',
'view_time'
];
/**
* 隐藏字段
* @var array
*/
protected $hidden = [
'is_delete',
'wxapp_id',
'create_time',
'update_time'
];
/**
* 文章详情HTML实体转换回普通字符
* @param $value
* @return string
*/
public function getArticleContentAttr($value)
{
return htmlspecialchars_decode($value);
}
public function getViewTimeAttr($value, $data)
{
return date('Y-m-d', $data['create_time']);
}
/**
* 文章详情
* @param $article_id
* @return ArticleModel|null
* @throws BaseException
* @throws \think\Exception
* @throws \think\exception\DbException
*/
public static function detail($article_id)
{
if (!$model = parent::detail($article_id)) {
throw new BaseException(['msg' => '文章不存在']);
}
// 累积阅读数
$model->setInc('actual_views', 1);
return $model;
}
/**
* 获取文章列表
* @param int $category_id
* @param int $limit
* @return \think\Paginator
* @throws \think\exception\DbException
*/
public function getList($category_id = 0, $limit = 15)
{
$category_id > 0 && $this->where('category_id', '=', $category_id);
return $this->field(['article_content'], true)
->with(['image', 'category'])
->where('article_status', '=', 1)
->where('is_delete', '=', 0)
->order(['article_sort' => 'asc', 'create_time' => 'desc'])
->paginate($limit, false, [
'query' => \request()->request()
]);
}
}