Php 获取控制器内的当前默认\u目标\u路径
我使用的是FOSUserBundle+FOSFacebookBundle,我试图在登录后使我的登录和注册页面不可接受。如果用户登录并正在访问其中一个页面,则应将其重定向到防火墙的默认\u目标\u路径中定义的页面 问题是,我不知道如何在控制器中获取默认的\u目标\u路径。我在用Php 获取控制器内的当前默认\u目标\u路径,php,symfony,Php,Symfony,我使用的是FOSUserBundle+FOSFacebookBundle,我试图在登录后使我的登录和注册页面不可接受。如果用户登录并正在访问其中一个页面,则应将其重定向到防火墙的默认\u目标\u路径中定义的页面 问题是,我不知道如何在控制器中获取默认的\u目标\u路径。我在用 $request->getSession()->get('_security.target_path'); 但它返回null 这是我的security.yml文件: jms_security_extra:
$request->getSession()->get('_security.target_path');
但它返回null
这是我的security.yml文件:
jms_security_extra:
secure_all_services: false
expressions: true
security:
encoders:
FOS\UserBundle\Model\UserInterface: sha512
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: [ROLE_USER, ROLE_ADMIN, ROLE_ALLOWED_TO_SWITCH]
providers:
chainprovider:
chain:
providers: [ fos_userbundle, fos_facebookbundle]
fos_userbundle:
id: fos_user.user_provider.username
fos_facebookbundle:
id: fos_facebookbundle
firewalls:
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
default_target_path: /
fos_facebook:
app_url: "FB_APP_URL"
server_url: "APP_URL"
login_path: /login
check_path: /login_fb_check
default_target_path: /
provider: fos_facebookbundle
logout: true
anonymous: true
dev:
pattern: ^/(_(profiler|wdt)|css|images|js|font)/
security: false
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
有什么想法吗
谢谢。设置:
firewalls:
main:
pattern: ^/
form_login:
# ...
default_target_path: %target_path%
在parameters.yml中设置的目标路径
parameters:
# ...
target_path: /
# ...
然后通过以下方式获得价值:
$this->container->getParameter('target_path');
您错过了get中的一个部分:
$request->getSession()->get('_security.main.target_path');
是的,这也是一个解决方案,但是关于如何获得实际的默认目标路径有什么想法吗?谢谢。firewalls:main:pattern:^/form_login:#。。。默认\u目标\u路径:%target\u路径%always\u use\u default\u target\u路径:true
每次登录后,用户将重定向到默认\u实际\u路径。最后一行有一个拼写错误:taget\u路径应该是target\u路径,我希望可以编辑它,但StackOverflow只允许编辑6个字符或更多