laravel5.5を勉強中のものです。
自作のコントローラにもログイン認証機能を追加したいと思い
調べた結果
php
1 public function __construct() 2 { 3 $this->middleware('auth'); 4 }
上記のコードを自作のコントローラに追加することでログイン認証は出来るようになったのですが
ログアウトをさせようとすると
Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException
No message
と言うエラーになってしまいログアウトがうまく動きませんでした。
$this->middleware('auth',['expect'=>'/logout']);
を入れてみたり色々試してみたりしたのですが・・・
自分で試せることはやり尽くしてしまったのでご教示頂けると幸いです。
以下が自作のコントローラの一部です。
[補足]
デフォルトのログイン、ログアウトの画面では問題なくログアウト出来ています
php
1namespace App\Http\Controllers; 2 3use Illuminate\Foundation\Bus\DispatchesJobs; 4use Illuminate\Routing\Controller as BaseController; 5use Illuminate\Foundation\Validation\ValidatesRequests; 6use Illuminate\Foundation\Auth\Access\AuthorizesRequests; 7use Illuminate\Foundation\Auth\AuthenticatesUsers; 8use Illuminate\Http\Request; 9use App\Customer; 10class CustomersController extends BaseController 11{ 12 use AuthorizesRequests, DispatchesJobs, ValidatesRequests; 13 public function __construct() 14 {//ログイン認証 15 $this->middleware('auth'); 16 $this->middleware('auth',['expect'=>'/logout']); 17 }
default.blade.php
php
1<!DOCTYPE html> 2<html lang="ja"> 3<head> 4 <meta charset="utf-8"> 5 <title>@yield('title')</title> 6 <link rel="stylesheet" href="/css/style.css"> 7</head> 8<body> 9 <header> 10 <ul> 11 <li><a href="/">TOP</a></li> 12 <li><a href="/new">新規作成</a></li> 13 <li><a href="/dl">CsvDownload</a></li> 14 <li><a href="{{ route('logout') }}">ログアウト</a></li> 15 </ul> 16 </header> 17 <div class="container"> 18 @yield('content') 19 </div> 20</body> 21</html>
routes/web.php
php
1//認証ルート 2Auth::routes(); 3Route::get('/', 'CustomersController@index'); 4Route::get('/new', 'CustomersController@new'); 5Route::post('/create', 'CustomersController@create'); 6Route::get('/show/{customer}', 'CustomersController@show'); 7Route::get('/edit/{customer}', 'CustomersController@edit'); 8Route::patch('/update/{customer}', 'CustomersController@update'); 9Route::delete('/delete/{customer}', 'CustomersController@delete'); 10Route::get('/search/', 'CustomersController@search'); 11Route::get('/dl/', 'CustomersController@csvDownload'); 12 13Route::get('/hello', 'CustomersController@index'); 14Route::get('/home', 'HomeController@index')->name('home'); 15 16//テストでログアウト登録してみた。 17Route::get('/logout', 'Auth\AuthController@getLogout');
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/11/25 13:07
2017/11/25 14:27
2017/11/25 17:08
2017/11/25 17:15