web-dev-qa-db-ja.com

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) 
25
winnyboy5

Usersテーブルのremember_tokenが欠落している可能性があります。

参照: http://laravel.com/docs/upgrade#upgrade-4.1.26

Laravelには、「VARCHAR(100)、TEXT、またはユーザーテーブルと同等のnull入力可能なremember_token」が必要です。

新しいドキュメントの更新

Laravel 4.2以降には、スキーマビルダーでこの列を追加するために使用できるメソッドがあります。

$table->rememberToken();

Laravel Docs-スキーマ-列の追加

52
lagbox

あなたの問題のために、null値を渡すか、モデルphpファイルのremember_token値をオフにすることができます

public $remember_token=false;
8
raju poudel

Laravel 4.を使用してシステム上でユーザーをログアウトする方法のサンプルコードを次に示します。ログアウトプロセスもトリガーするコード。

ルート

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

ログアウトをトリガーするHTMLボタン/リンク

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

ログアウトを処理するコントローラー機能

public function logout(){

    Auth::logout();

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

こっちだ!ルート名とコントローラー機能に置き換える必要があります。これは動作するはずです!表示されない場合は、ルートとhtmlコードを投稿してください!乾杯!

1
mandeeya

現在のLaravel更新により、ユーザーテーブルに"remember_token"列があるはずです。これにより問題が解決します。

1
Bastin Robin

Updated_at列をSQLテーブルuser_tblに追加する必要があります。使用したくない場合。モデル内のタイムスタンプをオフにすることもできます。

0
palash3593

私が使用していたため、アプリケーションでログアウトエラーが発生していることを学びました

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

代わりに以下を使用することを忘れないでください。

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

これはスムーズに機能しました。

0
Eenvincible