Я пытаюсь выйти из системы, когда пользователь нажимает на кнопку «Выйти», но когда я нажимаю кнопку «Выйти», страница не обновляется должным образом, то есть после выхода из системы показывается форма входа в систему, но отображаются данные, предназначенные для входа в систему.пользователь.Поэтому, когда я полностью обновляю его, он работает, но не работает, когда я просто нажимаю кнопку выхода из системы и использую функцию $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; ?>