web-dev-qa-db-fra.com

Laravel redirect avec logout ne fonctionne pas

J'utilise laravel 4 framework. Quand j'ai utilisé la redirection après Auth :: logout (), la redirection ne fonctionnait pas. J'ai aussi utilisé View :: make (), mais le même "Whoops, on dirait que quelque chose s'est mal passé." l'erreur se lève.

public function getLogout() {
      Auth::logout();
  return Redirect::to('users/login')->with('message', 'Your are now logged out!');
}

C'est le code de déconnexion. J'utilise. Quelqu'un s'il vous plaît aidez-moi avec ça.

routes.php  

Route::get('/', function()
  {
return View::make('hello');
  });

Route::controller('users', 'UsersController');

HTML

            @if(!Auth::check())
                <li>{{ HTML::link('users/register', 'Register') }}</li>   
                <li>{{ HTML::link('users/login', 'Login') }}</li>   
            @else
                <li>{{ HTML::link('users/logout', 'logout') }}</li>
            @endif

C'est ce que montre mon débogueur.

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'remember_token' in 'field list'    (SQL: update `users` set `updated_at` = 2014-04-23 11:30:41, `remember_token` = jSMcfpPnCPrKgwqfhB2tEEEd8h8x6d72viz67MbVzBD27A2G7AH8yWQo1ORf where `id` = 1) 
25
winnyboy5

Si vous avez Laravel 4.2, vous pouvez le faire:

Ligne de commande:

php artisan migrate:make add_remember_token_to_users_table --table="users"

Après cela, ouvrez le fichier app/database/migrations/2014_10_16_124421_add_remember_token_to_users_table et modifiez-le comme suit:

public function up()
{
    Schema::table('users', function(Blueprint $table)
    {
        $table->rememberToken();
    });
}

public function down()
{
    Schema::table('users', function(Blueprint $table)
    {
        $table->dropColumn('remember_token');
    });
}
8
paulalexandru

pour votre problème, vous pouvez passer la valeur null ou vous pouvez désactiver votre valeur Remember_token dans votre fichier php de modèle en tant que

public $remember_token=false;
8
raju poudel

voici un exemple de code décrivant la façon dont je gère la déconnexion d’utilisateurs de mon système à l’aide de Laravel 4. Je ne sais pas pourquoi le vôtre ne fonctionne pas et il sera agréable de voir votre itinéraire et le code html qui déclenche également le processus de déconnexion. 

La route

Route::get('logout', array('uses'=>'UserController@logout'));

Le bouton/lien HTML déclenchant la déconnexion

<a href="{{URL::to('logout')}}" class="btn btn-danger btn-sm">Logout</a>

La fonction contrôleur Gestion de la déconnexion

public function logout(){

    Auth::logout();

    return Redirect::to('login');
}

Ici vous avez! Vous devriez le remplacer par les noms de votre route et la fonction du contrôleur. Cela devrait marcher! Si ce n'est pas le cas, postez votre route et votre code HTML! À votre santé!

1
mandeeya

En raison de la mise à jour actuelle de Laravel, il devrait y avoir une colonne "Remember_token" dans la table user Cela résout le problème.

1
Bastin Robin

Vous devez ajouter la colonne updated_at dans votre table SQL user_tbl. Si vous ne souhaitez pas l'utiliser. vous pouvez également désactiver les horodatages dans votre modèle.

0
palash3593

J'ai appris que j'obtenais l'erreur de déconnexion dans mon application parce que j'utilisais

Route::post('logout', array('uses' => 'SessionController@doLogout'));

Rappelez-vous simplement d'utiliser ce qui suit à la place.

Route::get('logout', array('uses' => 'SessionController@doLogout'));

Cela a bien fonctionné.

0
Eenvincible