概要
基本的な流れの一つ。
form
要素のアクションでlogout
を指定して、submit
ボタンを配置LoginController
でloggedOut()
メソッドをオーバーライドしてリダイレクト先を指定
ログアウトボタンの配置
フォームとボタンによる方法
ログアウト機能を実装するビューで以下のようなform
要素を記述。
1 2 3 4 |
<form action="{{ route('logout') }}" method="post"> @csrf <input type="submit" value="ログアウト"> </form> |
アンカー要素による方法
ログアウト機能を実装するビューで以下のようなアンカー要素を記述。
1 |
<a href="/logout">ログアウト</a> |
アンカー要素はGETメソッドを発行するので、以下のルーティングをroutes/web.php
に追加。
1 |
Route::get('/logout', 'Auth\LoginController@logout'); |
その他の方法
このほか、form
要素にhidden
タイプのinput
要素を配置して、アンカータグでログアウトさせる方法もあるらしい。
ログアウト後のリダイレクト先を変更
LoginController
で以下の様にloggedOut()
メソッドをオーバーライドし、リダイレクト先を指定。
1 2 3 4 5 6 7 |
class LoginController extends Controller { .... protected function loggedOut(\Illuminate\Http\Request $request) { return redirect('login'); } } |
メソッドインジェクションのRequest
は、ファイル冒頭でuse
するならフルネームスペースでなくてもよい。