[Laravel] ログアウトリンクを作る
ログアウト処理はボタンなどで POST するのが一般的だけど、ただのリンクとして実装したい場合があった。
そんなときはこうする。
<a href="#" onclick="event.preventDefault(); document.getElementById('logout-form').submit();">ログアウト</a>
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
@csrf
</form>
手順は以下。
1. 見えないフォームを作る
display: none
にしただけ。
+ <form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
+ @csrf
+ </form>
2. そのフォームをリンクで submit できるようにする
+ <a href="#" onclick="event.preventDefault(); document.getElementById('logout-form').submit();">ログアウト</a>
<form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;">
@csrf
</form>
これで、リンクをクリックするとログアウトするようになる。