Мне нужно установить пользовательский атрибут в определении маршрута и использовать его как промежуточное ПО маршрута. Например, мне нужно управлять страницей ссылок, чтобы перенаправить пользователя после входа в систему.
Это мое определение маршрутов:
return function (App $app) {
$app->get('/', Home::class. ':home')->setName('home');
$app->get('/login', UserAction::class. ':getLogin')->setName('login')->setAttribute('norefer',true);
$app->post('/login', UserAction::class. ':postLogin');
};
->setAttribute('norefer',true);
- это то, что я ищу и кажется, что он не существует.
Мне нужен этот атрибут, используя ->getAttribute("norefer")
в промежуточном программном обеспечении, чтобы я мог сохранить последнюю ссылочную страницу, которую посетил пользователь:
public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
{
$routeContext = RouteContext::fromRequest($request);
$route = $routeContext->getRoute();
if (!empty($route) && !$routeContext->getRoute()->getAttribute("norefer")) {
$referName = $routeContext->getRoute()->getName();
$referArgs = $routeContext->getRoute()->getArguments();
$this->session->set("referName", $referName);
$this->session->set("referArgs", $referArgs);
}
return $handler->handle($request);
}
Итак, в сеанс я могу сохранить последнюю ссылочную страницу и использовать ее после процесса входа в систему, чтобы перенаправить пользователя на его страницу.