You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
2.1 KiB
87 lines
2.1 KiB
10 months ago
|
<?php
|
||
|
|
||
|
namespace app\common\model\server;
|
||
|
|
||
|
use app\common\model\ServerCategory;
|
||
|
use app\common\model\UploadFile;
|
||
|
use cores\BaseModel;
|
||
|
use think\db\exception\DbException;
|
||
|
use think\model\concern\SoftDelete;
|
||
|
use think\model\relation\HasOne;
|
||
|
use think\Paginator;
|
||
|
|
||
|
class Server extends BaseModel
|
||
|
{
|
||
|
|
||
|
// 定义表名
|
||
|
protected $name = 'server';
|
||
|
|
||
|
// 定义主键
|
||
|
protected $pk = 'server_id';
|
||
|
|
||
|
use SoftDelete;
|
||
|
|
||
|
protected string $deleteTime = 'delete_time';
|
||
|
protected $defaultSoftDelete = 0;
|
||
|
|
||
|
/**
|
||
|
* 图片
|
||
|
* @return HasOne
|
||
|
*/
|
||
|
public function image(): HasOne
|
||
|
{
|
||
|
return $this->hasOne(UploadFile::class, 'file_id', 'image_id');
|
||
|
}
|
||
|
|
||
|
public function category(): HasOne
|
||
|
{
|
||
|
return $this->hasOne(ServerCategory::class, 'category_id', 'category_id');
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* @notes:服务详情
|
||
|
* @param $where
|
||
|
* @param array $with
|
||
|
* @return static|array|null
|
||
|
* @author: wanghousheng
|
||
|
*/
|
||
|
public static function detail($where, array $with = [])
|
||
|
{
|
||
|
return static::get($where, $with);
|
||
|
}
|
||
|
|
||
|
|
||
|
/**
|
||
|
* @notes:获取全部记录
|
||
|
* @param array $where
|
||
|
* @param int $listRows
|
||
|
* @param string $sort
|
||
|
* @param string $sort_type
|
||
|
* @return Paginator
|
||
|
* @throws DbException
|
||
|
* @author: wanghousheng
|
||
|
*/
|
||
|
public function getList(array $where = [], int $listRows = 15, string $sort = '', string $sort_type = 'desc'): Paginator
|
||
|
{
|
||
|
$where = $this->setQueryDefaultValue($where);
|
||
|
$sort_arr = ['sort' => $sort_type, 'create_time' => $sort_type];
|
||
|
if ($sort) {
|
||
|
$sort_arr = [$sort => $sort_type, 'create_time' => $sort_type];
|
||
|
}
|
||
|
return $this->with(['image'])->withJoin(['category' => ['category_id', 'name']])
|
||
|
->where($where)
|
||
|
->order($sort_arr)
|
||
|
->paginate($listRows);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 文章详情:HTML实体转换回普通字符
|
||
|
* @param $value
|
||
|
* @return string
|
||
|
*/
|
||
|
public function getContentAttr($value): string
|
||
|
{
|
||
|
return htmlspecialchars_decode($value);
|
||
|
}
|
||
|
|
||
|
}
|