Как динамически указать маршрут по имени маршрута в security.yaml? - PullRequest
1 голос
/ 20 мая 2019

Я использую Symfony4. Я хочу указать маршрут URL страницы входа в систему по имени маршрута, объявленному в routes.yaml

Теперь у меня есть эти строки в моем security.yaml:

access_control:
    - { path: ^/login, allow_if: 'is_anonymous()'}
    - { path: ^/, roles: ROLE_USER}

По моему routes.yaml У меня есть это:

login:
    path: /anyrouteiwant   
    controller: App\Controller\SecurityController::login

Я хочу сослаться на название маршрута 'login'

1 Ответ

2 голосов
/ 21 мая 2019

Как насчет использования переменной среды?

.env.dev файл (также test и prod)

LOGIN_PATH="/login"

security.yaml файл

access_control:
    - { path: '^%env(LOGIN_PATH)%', allow_if: 'is_anonymous()'}
    - { path: ^/, roles: ROLE_USER}

routes.yaml file:

login:
    path: '%env(LOGIN_PATH)%'
    controller: App\Controller\SecurityController::login

не знаю, будет ли оно работать, но оно должно работать.

Ссылка: https://symfony.com/doc/current/configuration/environment_variables.html#environment-variable-processors

В противном случае кажется, что вы можете 't ссылка на конфигурацию маршрута внутри файла security.yaml.Чтобы проверить это самостоятельно, поместите:

var_dump($this->parameters);

внутри vendor\symfony\dependency-injection\ParameterBag\ParameterBag.php line 71 только в начале get($name) метода, вы можете увидеть определенные параметры при запуске:

php bin/console config:dump-reference security

команда.И кажется, что параметр не определен в пакете параметров, связанном с определенными маршрутами.

...