Массовые действия
Вы просматриваете документацию старой версии MoonShine. Рассмотрите возможность обновления вашего проекта до MoonShine 2.x.
По умолчанию в панели MoonShine в таблице всего 1 массовое действие над элементами - удаление. Но также есть возможность добавить свои кастомные массовые действия
namespace MoonShine\Resources; use MoonShine\Models\MoonshineUser;use MoonShine\BulkActions\BulkAction; class PostResource extends Resource{ public static string $model = App\Models\Post::class; public static string $title = 'Статьи'; //... public function bulkActions(): array { return [ BulkAction::make('Деактивация', function (Model $item) { $item->update(['active' => false]); }, 'Деактивирован')->icon('app') ]; } //...}
Первый аргумент - Наименование экшена. Второй аргумент - callback с параметром текущего элемента. Третий аргумент - сообщение, которое отобразится после выполнения экшена
# Способ отображения
Для отображения действий в виде выпадающего списка можно воспользоваться методом showInDropdown
use MoonShine\BulkActions\BulkAction; //...public function bulkActions(): array{ return [ BulkAction::make('Deactivation', function (Model $item) { $item->update(['active' => false]); }, 'Deactivated') ->showInDropdown() ];}//...
Данный способ отображения используется по умолчанию

Для отображения действий в виде горизонтального списка можно воспользоваться методом showInLine
use MoonShine\BulkActions\BulkAction; //...public function bulkActions(): array{ return [ BulkAction::make('Deactivation', function (Model $item) { $item->update(['active' => false]); }, 'Deactivated') ->showInLine() ];}//...

# Подтверждение действия
Для подтверждения действия необходимо воспользоваться методом withConfirm
use MoonShine\BulkActions\BulkAction; //...public function bulkActions(): array{ return [ BulkAction::make('Deactivation', function (Model $item) { $item->update(['active' => false]); }, 'Deactivated') ->withConfirm() ];}//...

Методу withConfirm()
можно передать заголовок и текст для модального окна, а так же название
для кнопки подтверждения
use MoonShine\BulkActions\BulkAction; //...public function bulkActions(): array{ return [ BulkAction::make('Deactivation', function (Model $item) { $item->update(['active' => false]); }, 'Deactivated') ->withConfirm('Title', 'Modal content', 'Accept') ];}//...
Метод errorMessage()
позволяет задать текст сообщения об ошибке
use MoonShine\BulkActions\BulkAction; //...public function bulkActions(): array{ return [ BulkAction::make('Deactivation', function (Model $item) { $item->update(['active' => false]); }, 'Deactivated') ->withConfirm('Title', 'Modal content', 'Accept') ->errorMessage('Fail') ];}//...