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

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

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

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

956閲覧

Larsvel5.4 Logout エラー

退会済みユーザー

退会済みユーザー

総合スコア0

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2017/09/07 05:56

http://example.com/ でログインして、全然問題はありませんが、logoutボタンLogoutも普通にできていますが下記のようにLogoutとすると
http://example.com/logout

エラーが出ますがどうすればいいですか?

(1/1) MethodNotAllowedHttpException in RouteCollection.php (line 251)

ちなみにLogout機能は下記です。

<a href="{{ route('logout') }}" onclick="event.preventDefault(); document.getElementById('logout-form').submit();"> Logout </a> <form id="logout-form" action="{{ route('logout') }}" method="POST" style="display: none;"> {{ csrf_field() }} </form>

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

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

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

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

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

m.ts10806

2017/09/07 05:59 編集

ルーティングに問題があるのでは・・?GETで受ける設定がないとか。ルーティング部分もご提示ください。
退会済みユーザー

退会済みユーザー

2017/09/07 06:09

Route::get('/home', 'TestController@index'); でlogoutボタンでhomeで行くようにしています
motuo

2017/09/07 06:37

恐らくmts10806さんが指摘されているのは、Route::get('/logout', 'TestController@index');が無いのでは?という事だと思います。/homeではルーティング出来ませんので。
退会済みユーザー

退会済みユーザー

2017/09/07 06:42

Route::get('/logout', 'TestController@index');で設定します、ログインしたら、ログイン中でhttp://example.com/logoutなってしまいます。
motuo

2017/09/07 08:07

例えば新しくログアウト用のメソッドを作ってRoute::get('/logout', 'TestController@logout');等としてみては如何でしょうか?
guest

回答1

0

ベストアンサー

Route::get('/logout', 'TestController@index');

ではなく

Route::post('/logout', 'TestController@index');

としてください。
aタグのイベントでformが発火されるようになっており、formのmethodはPOSTになっています。
そのため、getにしてあると動かないと思います。

php

1<a href="{{ route('logout') }}" 2 onclick="event.preventDefault(); 3 document.getElementById('logout-form').submit();"> Logout </a> 4 <form id="logout-form" action="{{ route('logout') }}" method="POST"←ここ style="display: none;"> 5 {{ csrf_field() }} 6 </form>

投稿2017/09/07 09:25

編集2017/09/07 09:26
fagai

総合スコア2158

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問