Laravel Policy - проверка статуса объекта

У меня есть модель с атрибутом status (который может быть open или ready ). Модель может быть отредактирована, когда статус open , но должна быть заблокирована, когда она будет ready .

Разрешено ли мне делать это в моей Policy ? Или политики предназначены только для авторизации?

Я знаю, что могу просто сделать это, мой вопрос больше о принципах в Laravel ...

Всего 1 ответ


Думаю, нет ничего плохого в том, чтобы поставить этот тип проверки в Политику вашей модели, это немного зависит от контекста. Я хотел бы думать о политиках (как вы описали) как начальные ворота входа в данное приложение. Так что, если это относится, например, только к методу обновления вашего контроллера, у вас все хорошо, imho.

Однако в случае, если могут существовать другие «пути» или процессы, на которые может повлиять описанное вами ограничение «открыть / готово», также может быть целесообразно включить этот тип проверок в ModelObserver saving .

Делая это, вы гарантируете, что не случайно манипулируете объектом, когда он ready просто потому, что вы забыли выполнить проверку авторизации заранее. Другими словами, реализуя его в методе saving ObserverClass, вы получаете «автономный» фрагмент поведения, который скорее представляет бизнес-логику, чем логику авторизации.


Есть идеи?

10000