Подтвердить что ты не робот

Переадресация Laravel при выходе из системы не работает

Я использую рамки laravel 4. Когда я использовал перенаправление после Auth:: logout(), перенаправление не работало. Я также использовал View:: make(), но тот же "Упс, похоже, что что-то пошло не так". ошибка поднимается.

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

Это код выхода. Я использую. Кто-нибудь, пожалуйста, помогите мне с этим.

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

Это показывает мой отладчик.

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) 
4b9b3361

Ответ 1

Возможно, вам не хватает значка_потока для таблицы пользователей.

см. ниже: http://laravel.com/docs/upgrade#upgrade-4.1.26

Laravel требует "nullable remember_token из VARCHAR (100), ТЕКСТ или эквивалент вашей таблицы пользователей".

Обновление для новой документации

В Laravel 4.2 теперь есть метод, который вы можете использовать с построителем схемы, чтобы добавить этот столбец.

$table->rememberToken();

Laravel Docs - Схема - Добавление столбцов

Ответ 2

Если у вас есть Laravel 4.2, вы можете сделать это:

Командная строка:

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

После этого откройте файл app/database/migrations/2014_10_16_124421_add_remember_token_to_users_table и отредактируйте его следующим образом:

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

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

Ответ 3

Вот пример кода из того, как я обрабатываю пользователей в моей системе, используя Laravel 4. Я не уверен, почему ваш не работает, и вам будет хорошо видеть ваш маршрут и html-код, который запускает процесс выхода из системы также.

Маршрут

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

Кнопка/ссылка HTML, вызывая выход из системы

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

Функция контроллера Обработка выхода

public function logout(){

    Auth::logout();

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

Вот и получилось! Вы должны заменить его именами маршрутов и функциями контроллера. Это должно сработать! Если это не так, отправьте свой маршрут и html-код! Ура!

Ответ 4

В связи с текущим обновлением Laravel в таблице пользователя должен быть столбец "remember_token" . Это решает проблему.

Ответ 5

Я узнал, что получаю ошибку выхода из системы в своем приложении, потому что использовал

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

Не забудьте использовать вместо этого следующее.

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

Это работало гладко.

Ответ 6

Вам нужно добавить столбец updated_at в таблицу SQL user_tbl. Если вы не хотите его использовать. вы также можете отключить временные метки в своей модели.

Ответ 7

для вашей проблемы, вы можете передать значение null или вы можете отключить значение remember_token в вашем php файле модели как

public $remember_token=false;