Почему редирект Symfony не обновляет страницу? - PullRequest
0 голосов
/ 28 октября 2018

Я пытаюсь выйти из системы, когда пользователь нажимает на кнопку «Выйти», но когда я нажимаю кнопку «Выйти», страница не обновляется должным образом, то есть после выхода из системы показывается форма входа в систему, но отображаются данные, предназначенные для входа в систему.пользователь.Поэтому, когда я полностью обновляю его, он работает, но не работает, когда я просто нажимаю кнопку выхода из системы и использую функцию $this->redirect('@recipes_index');, как показано ниже.

Маршрут:

recipes_logout:
  url:   meals-recipes/logout
  param: {module: recipes, action: logout}

Контроллер пользователя:

public function RecipeUserLogin($user) {
        $this->setAuthenticated(true);
        $this->addCredential('recipe_user');
        $this->setAttribute('id', $user['id'], 'recipe_user');
        $this->setAttribute('email', $user['email'], 'ketogenic_recipe_user');
        $this->setAttribute('name', $user['first_name'] . " " . $user['last_name'], 'recipe_user');
    }

    public function RecipeUserLogout() {
        $this->getAttributeHolder()->removeNamespace('recipe_user');
        $this->removeCredential('recipe_user');
    }

Функция, вызываемая при нажатии:

public function executeLogout(sfWebRequest $request) {
      $this->getUser()->RecipeUserLogout();
      $this->redirect('@recipes_index');
  }

Просмотр:

<?php if(!$sf_user->hasCredential('recipe_user')): ?>
                <form class="form-inline" method="post" >
                    <?php echo $form['email']->render(array('class' => 'form-control mb-sm', 'placeholder' => 'Email', 'value' => base64_decode($sf_request->getParameter('user')) )); ?>
                    <?php echo $form['password']->render(array('class' => 'form-control mb-sm','type' => 'password', 'placeholder' =>'Password')); ?>
                    <input type="submit" class="btn btn-primary mb-sm " name="submit" value="Sign in">
                    <?php echo $form['password']->renderError() ?>
                    <?php echo $form['email']->renderError() ?>
                    <?php echo $form->renderHiddenFields(); ?>
                    <br>
                    <a href="<?php echo url_for('@recipes_forgot_pass'); ?>">Reset Password</a>
                </form>
            <?php else: ?>
            <div> You are logged in as <?php echo $sf_user->getAttribute('name', null, 'recipe_user'); ?>.</div>
            <a href="<?php echo url_for('@recipes_logout'); ?>">Logout</a>
            <br>
            <?php endif; ?>
...