Как лучше в админке Orchid Laravel получить модель удаленную программно используя трейт SoftDeletes?
Ссылка скопирована
По вводным: админка Orchid на Laravel. Пользователей можно удалять программно используя поле в таблице deleted_at и трейт в модели SoftDeletes. Список пользователей смог вывести с удаленными моделями - в методе query экрана UserListScreen добавил ->withTrashed():
public function query(): iterable { return [ 'users' => User::with('roles') ->withTrashed() ->filters(UserFiltersLayout::class) ->defaultSort('id', 'asc') ->paginate(), ]; }
Нужно понять: а как это сделать в экране UserEditScreen, где можно просматривать и редактировать пользователя?
Нужно решить такую задачу?
Заказать помощь
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Лучший ответ
1
Другие ответы (0)
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопроскомментарий
Вам также может быть интересно
VPN
Как правильно настроить vless для Android TV?
1 ответ
Pyrogram
Как правильно зарегистрировать юзер бота в Telegram?
1 ответ
печатные-платы
Как заставить запускаться программу M3.exe от компании Hanxing AOI в инспекционной машине на Windows 7 Pro?
1 ответ
1С
Как выдать дефолтному пользователю 1С 8.3 право на загрузку XML?
1 ответ

В Laravel Orchid модель, удаленную через SoftDeletes, можно получить только если запрос явно включает trashed-записи. По умолчанию Eloquent скрывает такие записи глобальным scope. Поэтому в админке Orchid нужно использовать
withTrashed()илиonlyTrashed()в query, screen или repository-слое.Если у модели есть трейт SoftDeletes:
use IlluminateDatabaseEloquentSoftDeletes; class Product extends Model { use SoftDeletes; }
Получить конкретную удаленную запись можно так:
$product = Product::withTrashed()->findOrFail($id);
Если нужны только удаленные:
$products = Product::onlyTrashed()->paginate();
В Orchid Screen это обычно делается в методе query:
public function query(): iterable { return [ 'products' => Product::withTrashed() ->filters() ->defaultSort('id', 'desc') ->paginate(), ]; }
Если Orchid route model binding не находит удаленную модель, не полагайтесь на автоматическую подстановку. Передайте ID и найдите модель вручную через
withTrashed(). Для интерфейса удобно добавить фильтр «Все / Активные / Удаленные» и отдельные действия «Восстановить» и «Удалить навсегда».