質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

2200閲覧

LaravelでログアウトしようとするとSession store not set on request.エラーになる

gasa

総合スコア4

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

1クリップ

投稿2021/05/07 10:11

#環境
プログラミング初学者です。
php 7.3.27
laravel8

#困っていること
bladeファイルにログアウトするためのリンクを設置しました。

blade

1<form id="logout-form" method="POST" action="{{ route('logout') }}"> 2@csrf 3 <a href="{{ route('logout') }}" onclick="event.preventDefault(); document.getElementById('logout-form').submit();"><i class="fas fa-door-open fa-2x"></i><span>ログアウト</span></a> 4</form>

しかし、アクセスしても**Session store not set on request.**と表示され、ログアウトできません。

sessionの保存先はdatabaseに設定しています。
実際にsessionsテーブルにはレコードが保存されており、user_idもユーザーと一致しています。

ログインは普通に出来ます。

認証機能はlaravel breezeを使っています。
/routes/auth.phpにあるルーティングは以下のようになっています。

auth

1Route::post('/logout', [AuthenticatedSessionController::class, 'destroy']) 2 ->middleware('auth') 3 ->name('logout'); 4

「Session store not set on request.」で調べても日本語のページがほとんどなく、海外の方の質問も読みましたが、解説されているmiddleware系の部分は確認したところ問題ないと思います。

こんなにとっかかりのないエラーは初めてで、自力でどうにか出来る気がしません。
ぜひお力をお借りしたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

変更前

blade

1<form id="logout-form" method="POST" action="{{ route('logout') }}"> 2@csrf 3 <a href="{{ route('logout') }}" onclick="event.preventDefault(); document.getElementById('logout-form').submit();"> 4 <i class="fas fa-door-open fa-2x"></i> 5 <span>ログアウト</span> 6 </a> 7</form>

変更後

blade

1<a href={{ route('logout') }} onclick="event.preventDefault(); 2 document.getElementById('logout-form').submit();"> 3 ログアウト 4</a> 5<form id='logout-form' action={{ route('logout')}} method="POST"> 6 @csrf 7</form>

上記だとうまくいきますでしょうか?
ログアウトの部分のタグは、後程調整してみてください。

投稿2021/05/10 07:08

m1102

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問