Files
larablog/app/Filament/Resources/Articles/Tables/ArticlesTable.php
T
ak 263b98b218 Initial baseline: LaraBlog core with plugin commerce surface.
Captures the current working tree after theme slots, ArticleAccess, and the payment / paid-content plugins so subsequent work has a reviewable git history.
2026-08-12 01:15:38 +08:00

89 lines
3.2 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Filament\Resources\Articles\Tables;
use App\Domain\Plugin\Hook;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteBulkAction;
use Filament\Actions\EditAction;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Table;
class ArticlesTable
{
public static function configure(Table $table): Table
{
return $table
->columns([
TextColumn::make('category.name')
->label(__('admin.fields.category'))
->searchable(),
TextColumn::make('user.name')
->label(__('admin.fields.author'))
->searchable(),
TextColumn::make('title')
->label(__('admin.fields.title'))
->searchable(),
TextColumn::make('description')
->label(__('admin.fields.description'))
->searchable(),
TextColumn::make('keywords')
->label(__('admin.fields.keywords'))
->searchable(),
TextColumn::make('published_at')
->label(__('admin.fields.published_at'))
->dateTime()
->sortable(),
TextColumn::make('views')
->label(__('admin.fields.views'))
->numeric()
->sortable(),
TextColumn::make('comments_count')
->label(__('admin.fields.comments_count'))
->numeric()
->sortable(),
IconColumn::make('stick')
->label(__('admin.fields.stick'))
->boolean(),
IconColumn::make('visible')
->label(__('admin.fields.visible'))
->boolean(),
IconColumn::make('close_comment')
->label(__('admin.fields.close_comment'))
->boolean(),
TextColumn::make('created_at')
->label(__('admin.fields.created_at'))
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
TextColumn::make('updated_at')
->label(__('admin.fields.updated_at'))
->dateTime()
->sortable()
->toggleable(isToggledHiddenByDefault: true),
TextColumn::make('slug')
->label(__('admin.fields.slug'))
->searchable(),
TextColumn::make('content_format')
->label(__('admin.fields.content_format'))
->searchable(),
...Hook::collect('filament.article.table.columns'),
])
->filters([
//
])
->recordActions([
EditAction::make(),
...Hook::collect('filament.article.actions'),
])
->toolbarActions([
BulkActionGroup::make([
DeleteBulkAction::make(),
]),
]);
}
}