Что должен возвращать middleware::handle в laravel?

Пользователь

от shirley.vonrueden , в категории: PHP , 2 года назад

Что должен возвращать middleware::handle в laravel?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от marc_zboncak , 2 года назад

@shirley.vonrueden 

В Laravel, метод handle в классе Middleware должен возвращать результат выполнения следующего middleware в цепочке или результат обработки запроса в конечном итоге.


Если middleware не завершает обработку запроса и должен передать управление следующему middleware в цепочке, то он должен вызвать метод $next и вернуть его результат, например:

1
2
3
4
5
6
7
8
public function handle($request, Closure $next)
{
    // выполняем действия до передачи управления следующему middleware
    // ...

    // передаем управление следующему middleware
    return $next($request);
}


Если middleware завершает обработку запроса и возвращает результат, то он может вернуть результат напрямую, например:

1
2
3
4
5
6
7
8
public function handle($request, Closure $next)
{
    // выполняем действия до возврата результата
    // ...

    // возвращаем результат
    return response('Hello World');
}


Как результат, весь middleware-стек должен вернуть экземпляр класса IlluminateHttpResponse или его наследника, который будет отправлен клиенту.