小编Bad*_*olf的帖子

编辑有错误的用户错误地临时更改了 app.user.username,如何解决?

我们为我们的用户使用 Symfony2 框架和 FOSUserBundle。所以我们有我们自己的 UserBundle,它继承自 FOSUserBundle。问题是:当我们使用错误的密码发送用于编辑用户的表单时,由于表单不正确,显示在标题中的 app.user.username 在不应该更改时发生了变化。然后当我们重新加载页面时, app.user.username 具有正常的用户名(因为它在数据库中没有改变)。问题是,为什么 app.user.username 会临时更改我们刚刚使用错误密码发送的表单(编辑用户)的值?

我们使用 FOSUser 的正常路由:

fos_user_security:
    resource: "@FOSUserBundle/Resources/config/routing/security.xml"

fos_user_profile:
    resource: "@FOSUserBundle/Resources/config/routing/profile.xml"
    prefix: /profile

fos_user_register:
    resource: "@FOSUserBundle/Resources/config/routing/registration.xml"
    prefix: /register

fos_user_resetting:
    resource: "@FOSUserBundle/Resources/config/routing/resetting.xml"
    prefix: /resetting

fos_user_change_password:
    resource: "@FOSUserBundle/Resources/config/routing/change_password.xml"
    prefix: /profile
Run Code Online (Sandbox Code Playgroud)

FOSUser 的默认控制器:

public function editAction(Request $request)
{
    $user = $this->getUser();
    if (!is_object($user) || !$user instanceof UserInterface) {
        throw new AccessDeniedException('This user does not have access to this section.');
    }

    /** @var $dispatcher \Symfony\Component\EventDispatcher\EventDispatcherInterface */
    $dispatcher = $this->get('event_dispatcher');

    $event = new GetResponseUserEvent($user, $request); …
Run Code Online (Sandbox Code Playgroud)

php forms editing symfony fosuserbundle

5
推荐指数
1
解决办法
801
查看次数

标签 统计

editing ×1

forms ×1

fosuserbundle ×1

php ×1

symfony ×1