35 lines
879 B
PHP
35 lines
879 B
PHP
<?php
|
|
|
|
namespace App\Filament\Widgets;
|
|
|
|
use App\Models\Article;
|
|
use Filament\Tables\Columns\TextColumn;
|
|
use Filament\Widgets\TableWidget;
|
|
use Illuminate\Database\Eloquent\Builder;
|
|
|
|
class TopArticlesWidget extends TableWidget
|
|
{
|
|
protected int | string | array $columnSpan = 'full';
|
|
|
|
protected function getTableHeading(): string
|
|
{
|
|
return '热门文章';
|
|
}
|
|
|
|
protected function getTableQuery(): Builder
|
|
{
|
|
return Article::query()
|
|
->orderByDesc('view_count')
|
|
->orderByDesc('published_at');
|
|
}
|
|
|
|
protected function getTableColumns(): array
|
|
{
|
|
return [
|
|
TextColumn::make('title')->label('文章')->searchable()->limit(40),
|
|
TextColumn::make('view_count')->label('浏览')->sortable(),
|
|
TextColumn::make('published_at')->label('发布时间')->dateTime(),
|
|
];
|
|
}
|
|
}
|