Как запретить выполнение маршрута в Laravel по условию?

Рейтинг: 0Ответов: 1Опубликовано: 17.08.2023

Следующая ситуация. Допустим у нас есть таблица оплат, и есть интерфейс по удалению записей в этой таблице. Но есть правило - можно удалять только те записи, которые добавлены час назад и более, и поле paid равно нулю.

Вопрос

Как запретить в интерфейсе такое удаление - я знаю. Но как мне запретить, если пользователь решит исполнить данный маршрут из строки адреса в браузере?

Какие подходы/механизмы в Laravel 8-10 для таких случаев обычно применяют?

Ответы

▲ -1

Можно просто в контроллере сделать проверку при удалении:

if($item->created_at->diffInHours(now()) >= 1 && $item->paid == 0)
{
    $item->delete();
}