У меня есть эти ворота, которые проверяют, есть ли у пользователя активная подписка: Gate::allows('paid-actions')
Это работает, как и ожидалось, внутри методов, но у меня есть 10 методов и маршрутов, поэтому я подумал, что было бы легко, если бы я поставил это внутри конструктора контроллера.
Я использовал это в конструкторе: $this->middleware('can:paid-actions');
Работает, но возвращает значение по умолчанию 403 | Это неавторизованное сообщение , и я хотел бы показать свое. Если я изменю его через App\Exceptions\Handler
, он будет отображаться не только для шлюза, но и когда пользователь не вошел в систему.
Я поместил его в конструктор контроллера, но, похоже, он не работает.
public function __construct() {
if (Gate::denies('paid-actions')) {
return view('user.not_subscribed');
}
}```