Как запустить промежуточное программное обеспечение в Laravel, даже если привязка модели маршрута не удалась?Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как запустить промежуточное программное обеспечение в Laravel, даже если привязка модели маршрута не удалась?

Сообщение Anonymous »

У меня возникла проблема при создании функции для моего приложения в Laravel из-за странной логики неявной привязки модели маршрута.
У меня есть несколько маршрутов, настроенных для панели администратора с неявной связанные модели. Ниже приведен пример:

Код: Выделить всё

Route::get('/admin/books/{book}', BooksController);
Очевидно, у меня также есть глобальное промежуточное программное обеспечение для всех маршрутов администратора, которое проверяет, прошел ли пользователь аутентификацию в качестве администратора, а затем направляет его на страницу входа, если он им не является.
Очевидно, у меня также есть глобальное промежуточное программное обеспечение для всех маршрутов администратора, которое проверяет, аутентифицирован ли пользователь как администратор, а затем направляет его на страницу входа, если он им не является.
p>

Код: Выделить всё

class AuthenticateAdmin
{
public function handle(Request $request, Closure $next): Response
{
dump('inside admin auth middleware');
if (! Auth::user()?->is_admin) {
return to_route('admin.signin');
}
return $next($request);
}
}
Проблема, с которой я столкнулся, заключается в том, что если я посещаю несуществующий маршрут, например /admin/books-non-existent, я получите правильное перенаправление, поскольку промежуточное программное обеспечение запускается. То есть я получаю сообщение дампа.
Однако, если я посещаю существующий маршрут, но привязка модели не удалась, для например /admin/books/xyz, промежуточное ПО вообще не запускается!! Я не получаю никакого сообщения о дампе.
Как заставить промежуточное программное обеспечение запускаться даже в случае сбоя привязки модели маршрута?

Подробнее здесь: https://stackoverflow.com/questions/791 ... ding-fails
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»