Действия карточки
Вы просматриваете документацию старой версии MoonShine. Рассмотрите возможность обновления вашего проекта до MoonShine 2.x.
# Регистрация
По умолчанию в панели MoonShine в таблице всего 2 действия над элементами - редактирование и удаление. Но также есть возможность добавить свои кастомные действия
namespace MoonShine\Resources; use MoonShine\Models\MoonshineUser;use MoonShine\ItemActions\ItemAction; class PostResource extends Resource{ public static string $model = App\Models\Post::class; public static string $title = 'Articles'; //... public function itemActions(): array { return [ ItemAction::make('Deactivating', function (Model $item) { $item->update(['active' => false]); }, 'Deactivated')->icon('app') ]; } //...}
Первый аргумент - Наименование экшена. Второй аргумент - callback с параметром текущего элемента. Третий аргумент - сообщение, которое отобразится после выполнения экшена
# Условие отображения
Отображать действие по условию
...public function itemActions(): array{ return [ ItemAction::make('Restore', function (Model $item) { $item->restore(); }, 'Retrieved') ->canSee(fn(Model $item) => $item->trashed()) ];}...
# Способ отображения
Для отображения действий в виде выпадающего списка можно воспользоваться методом showInDropdown
use MoonShine\ItemActions\ItemAction; //...public function itemActions(): array{ return [ ItemAction::make('Deactivation', function (Model $item) { $item->update(['active' => false]); }, 'Deactivated') ->showInDropdown() ];}//...
Данный способ отображения используется по умолчанию
Для отображения действий в виде горизонтального списка можно воспользоваться методом showInLine
use MoonShine\ItemActions\ItemAction; //...public function itemActions(): array{ return [ ItemAction::make('Deactivation', function (Model $item) { $item->update(['active' => false]); }, 'Deactivated') ->showInLine() ];}//...
# Подтверждение действия
Для подтверждения действия необходимо воспользоваться методом withConfirm
use MoonShine\ItemActions\ItemAction; //...public function itemActions(): array{ return [ ItemAction::make('Deactivation', function (Model $item) { $item->update(['active' => false]); }, 'Deactivated') ->withConfirm() ];}//...
Методу withConfirm()
можно передать заголовок и текст для модального окна, а так же название
для кнопки подтверждения
use MoonShine\ItemActions\ItemAction; //...public function itemActions(): array{ return [ ItemAction::make('Deactivation', function (Model $item) { $item->update(['active' => false]); }, 'Deactivated') ->withConfirm('Title', 'Modal content', 'Accept') ];}//...
Метод errorMessage()
позволяет задать текст сообщения об ошибке
use MoonShine\ItemActions\ItemAction; //...public function itemActions(): array{ return [ ItemAction::make('Deactivation', function (Model $item) { $item->update(['active' => false]); }, 'Deactivated') ->withConfirm('Title', 'Modal content', 'Accept') ->errorMessage('Fail') ];}//...