Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
executable file 49 lines (38 sloc) 2.1 KB
title
Получение текущего маршрута

Если вам когда-либо понадобится доступ к текущему маршруту в вашем приложении, все, что вам нужно сделать, это вызвать метод класса запроса getAttribute с аргументом, 'route' и он вернет текущий маршрут, который является экземпляром Slim\Route класса.

Оттуда вы можете получить имя маршрута, используя getName() или получить методы, поддерживаемые этим маршрутом, через getMethods() и т. Д.

Примечание. Если вам нужно получить доступ к маршруту из middleware вашего приложения, вы должны установить 'determineRouteBeforeAppMiddleware' значение true в своей конфигурации, иначе оно getAttribute('route') вернет значение null. Также getAttribute('route') возвратит null на несуществующих маршрутах.

Пример:

use Slim\App;
use Slim\Exception\NotFoundException;
use Slim\Http\Request;
use Slim\Http\Response;

$app = new App([
    'settings' => [
        // Установите это только в том случае, если вам нужен доступ к маршруту внутри middleware
        'determineRouteBeforeAppMiddleware' => true
    ]
]);

// routes...
$app->add(function (Request $request, Response $response, callable $next) {
    $route = $request->getAttribute('route');

    // return NotFound для несуществующего маршрута
    if (empty($route)) {
        throw new NotFoundException($request, $response);
    }

    $name = $route->getName();
    $groups = $route->getGroups();
    $methods = $route->getMethods();
    $arguments = $route->getArguments();

    // do something with that information

    return $next($request, $response);
});