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)
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();
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');
});
}
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;
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!
Aufgrund des aktuellen Laravel-Updates sollte sich in der Benutzertabelle eine Spalte "remember_token" befinden. Das löst das Problem.
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.
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.