wake-up-neo.net

Laravel-Weiterleitung mit Abmeldung funktioniert nicht

Ich verwende Laravel 4 Frameworks. Wenn ich nach Auth :: logout () eine Umleitung verwendete, funktionierte die Umleitung nicht. Ich habe auch View :: make () verwendet. Fehler wirft auf.

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

Dies ist der Abmeldecode. Ich benutze. Bitte helfen Sie mir dabei.

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

Das zeigt mein Debugger.

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

Möglicherweise fehlt das Remember_Token für die Benutzertabelle.

siehe: http://laravel.com/docs/upgrade#upgrade-4.1.26

Laravel erfordert "nullable remember_token of VARCHAR (100), TEXT oder eine Entsprechung zu Ihrer Benutzertabelle."

Update für neue Dokumentation

Laravel 4.2 und höher verfügt über eine Methode, die Sie mit Ihrem Schema-Builder zum Hinzufügen dieser Spalte verwenden können.

$table->rememberToken();

Laravel Docs - Schema - Hinzufügen von Spalten

52
lagbox

Wenn Sie Laravel 4.2 haben, können Sie Folgendes tun:

Befehlszeile:

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

Öffnen Sie danach die Datei app/database/migrations/2014_10_16_124421_add_remember_token_to_users_table und bearbeiten Sie sie wie folgt:

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

für Ihr Problem können Sie einen Nullwert übergeben oder den Wert für remember_token in Ihrer Modell-PHP-Datei unter

public $remember_token=false;
8
raju poudel

hier ist ein Beispielcode, wie ich mit Laravel 4 das Abmelden von Benutzern auf meinem System handle. Ich bin nicht sicher, warum Ihr Benutzer nicht funktioniert. Es ist daher schön, Ihre Route zu sehen und HTML-Code, der auch den Abmeldeprozess auslöst. 

Die Route

Route::get('logout', array('uses'=>'[email protected]'));

Die HTML-Schaltfläche/der Link, der die Abmeldung auslöst

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

Die Controller-Funktion zur Abmeldung

public function logout(){

    Auth::logout();

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

Hier hast du! Sie sollten es durch Ihre Routennamen und Controller-Funktionen ersetzen. Das sollte funktionieren! Wenn dies nicht der Fall ist, posten Sie Ihre Route und den HTML-Code! Prost!

1
mandeeya

Aufgrund des aktuellen Laravel-Updates sollte sich in der Benutzertabelle eine Spalte "remember_token" befinden. Das löst das Problem.

1
Bastin Robin

Sie müssen die Spalte "update_at" in Ihre SQL-Tabelle user_tbl einfügen. Wenn Sie es nicht verwenden möchten. Sie können auch Zeitstempel in Ihrem Modell deaktivieren.

0
palash3593

Ich habe erfahren, dass ich den Abmeldefehler in meiner Anwendung bekam, weil ich ihn verwendete

Route::post('logout', array('uses' => '[email protected]'));

Denken Sie daran, stattdessen die folgenden zu verwenden.

Route::get('logout', array('uses' => '[email protected]'));

Das hat reibungslos funktioniert.

0
Eenvincible