Files
laralog/app/Models/Category.php
T
ak 5f74dd76e4 feat: 文章/分类/评论关联细节完善
- 文章列表:会员插件注入「付费」徽章列(会员/付费¥xx,停插件即消失)
- 分类:真实文章数(withCount)、名称点击跳文章列表并按分类筛选(ListPosts booted 预置筛选)
- 分类:新增封面(medialibrary)+ 介绍(description 字段/表单);前台分类页顶部展示介绍区;SEO description + BreadcrumbList 结构化数据(GEO)
- 文章编辑:MarkdownEditor 内容区加大(26rem);文章编辑页新增「评论」关系管理页(可审/拒)
- 评论列表:文章列带摘要
- 三套主题补 .category-intro 样式
- 测试更新(付费徽章列)
2026-08-12 22:44:16 +08:00

43 lines
930 B
PHP

<?php
declare(strict_types=1);
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
class Category extends Model implements HasMedia
{
use HasFactory;
use InteractsWithMedia;
protected $fillable = [
'name',
'slug',
'display_order',
'post_count',
'description',
];
public function posts(): HasMany
{
return $this->hasMany(Post::class);
}
public function getUrlAttribute(): string
{
return route('category.show', $this->slug ?? $this->id);
}
public function registerMediaCollections(): void
{
$this->addMediaCollection('cover')
->useDisk(\App\Support\MediaDisk::name())
->singleFile();
}
}