РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗ppflSpRsSD 4 of 250 menu
◀ ▶

Мягкое удаление в Filament

Давайте включим мягкое удаление. Модель поста уже помечает строки скрытыми вместо полного стирания из базы. По умолчанию список /admin/posts такие строки не показывает, как и обычные запросы Eloquent с глобальной областью видимости.

Чтобы в панели можно было увидеть скрытые записи, на ресурсе переопределяют метод getEloquentQuery и снимают SoftDeletingScope с запроса:

<?php namespace App\Filament\Resources\Posts; use App\Models\Post; use Filament\Resources\Resource; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\SoftDeletingScope; class PostResource extends Resource { protected static ?string $model = Post::class; public static function getEloquentQuery(): Builder { return parent::getEloquentQuery() ->withoutGlobalScopes([ SoftDeletingScope::class, ]); } } ?>

В описании таблицы добавим фильтр TrashedFilter. Он даёт переключатель: только активные, только скрытые или все строки сразу:

<?php namespace App\Filament\Resources\Posts\Tables; use Filament\Tables\Filters\TrashedFilter; use Filament\Tables\Table; class PostsTable { public static function configure(Table $table): Table { return $table ->filters([ TrashedFilter::make(), ]); } } ?>

После сохранения настроек откроем список и в фильтрах выберем режим со скрытыми строками. Удалённые из интерфейса записи снова видны в таблице.

Сделайте так, чтобы в списке работников можно было увидеть скрытые удалённые строки.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить