app/models/Category.php
(开头部分) 2KB这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。
<?php
require_once __DIR__ . '/../../core/BaseModel.php';
class Category extends BaseModel {
protected $table = 'categories';
protected $fillable = ['name', 'slug', 'description', 'parent_id', 'sort_order', 'status'];
public function getAllWithPostCount() {
$sql = "SELECT c.*, COUNT(p.id) as post_count
FROM {$this->table} c
LEFT JOIN posts p ON c.id = p.category_id AND p.status = 'published'
GROUP BY c.id
ORDER BY c.sort_order ASC, c.id ASC";
return $this->db->fetchAll($sql);
}
public function getActiveCategories() {
$sql = "SELECT c.*, COUNT(p.id) as post_count
FROM {$this->table} c
LEFT JOIN posts p ON c.id = p.category_id AND p.status = 'published'
WHERE c.status = 1
GROUP BY c.id
ORDER BY c.sort_order ASC, c.id ASC";
return $this->db->fetchAll($sql);
}
public function getTree() {
$categories = $this->getActiveCategories();
return $this->buildTree($categories);
}
private function buildTree($categories, $parentId = 0) {
$tree = [];
foreach ($categories as $category) {
if ($category['parent_id'] == $parentId) {
$children = $this->buildTree($categories, $category['id']);
if ($children) {
$category['children'] = $children;
}
$tree[] = $category;
}
}
return $tree;
}
public function getBySlug($slug) {
return $this->findOneBy('slug', $slug);
}
public function hasChildren($id) {
return $this->count('parent_id = ?', [$id]) > 0;
}
public function getChildIds($parentId) {
$ids = [$parentId];
$children = $this->findBy('parent_id', $parentId);
foreach ($children as $child) {
$ids = array_merge($ids, $this->getChildIds($child['id']));
}
return $ids;
后面还有 2 行代码,解锁后查看完整代码
24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明
AI 解读 AI
登录后可用,每次 10 算力,解读结果公开显示在下面。
还没有人解读过这个文件。
