Symfony 6.4 用户模拟功能异常:切换至子用户后无法访问带参数的路由
Symfony 6.4 用户模拟功能异常:切换至子用户后无法访问带参数的路由
我正在开发一个基于Symfony 6.4的应用,场景是家长用户(对应User实体)可以关联多个子用户(同样是User实体),并且能以子用户的身份登录操作应用。我决定用Symfony自带的用户模拟功能来实现这个需求。
因为家长注册子用户时不需要填写邮箱,所以没法用用户名来切换用户,只能通过ID来实现。为此我做了以下几项定制:
- 编写了自定义控制器来处理用户切换逻辑
- 实现了自定义Voter来控制切换权限
- 在配置里新增了第二个安全提供者
目前基础的用户切换功能是正常的:我可以顺利从家长账号切换到子用户,也能切回家长账号,来回操作都没问题。
但现在遇到了一个奇怪的问题:当我切换到子用户身份后,只要访问带有参数(比如id)的路由,就会触发错误,报错信息如下:
An exception has been raised when rendering a template (“Some mandatory parameters are missing ("id") to generate a URL for route "xxx".”)
备注:内容来源于stack exchange,提问作者Kalm122
相关产品推荐
相关产品推荐

