41 lines
1.0 KiB
PHP
41 lines
1.0 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace plugin\article\app\dao;
|
|
|
|
use core\base\BaseDao;
|
|
use plugin\article\app\model\Category;
|
|
|
|
class CategoryDao extends BaseDao
|
|
{
|
|
protected function setModel(): string
|
|
{
|
|
return Category::class;
|
|
}
|
|
|
|
protected function getKeywordFields(): array
|
|
{
|
|
return ['name', 'slug', 'description'];
|
|
}
|
|
|
|
public function selectModel(
|
|
array $where,
|
|
array|string $field = '*',
|
|
int $page = 0,
|
|
int $limit = 0,
|
|
string $order = '',
|
|
array $with = [],
|
|
bool $search = false,
|
|
?array $withoutScopes = null
|
|
): \Illuminate\Database\Eloquent\Builder|\Illuminate\Database\Query\Builder|\Illuminate\Pagination\LengthAwarePaginator|null {
|
|
$query = parent::selectModel($where, $field, $page, $limit, $order, $with, $search, $withoutScopes);
|
|
|
|
if ($query instanceof \Illuminate\Database\Eloquent\Builder) {
|
|
$query->withCount(['contents as article_count']);
|
|
}
|
|
|
|
return $query;
|
|
}
|
|
}
|