Userモデル側でロールの判定は行い、middlewareではページ遷移の制御を行う
404はviews/errors/フォルダの下に404.blade.phpを作る
### middlewareによる制御
$ php artisan make:middleware Admin
$ git add .
$ git commit -m “user section working except security”
app/Http/kernel.php
protected $routeMiddleware = [ 'auth' => \App\Http\Middleware\Authenticate::class, 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 'can' => \Illuminate\Foundation\Http\Middleware\Authorize::class, 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 'admin' => \App\Http\Middleware\Admin::class, ];
Route
Route::group(['middleware']=>'admin', function(){ Route::resource('admin/users', 'AdminUsersController'); });
User.php
public function isAdmin(){ if($this->role->name == "administrator"){ return true; } return false; }
app/Http/Middleware/Admin.php
use Illuminate\Support\Facades\Auth; public function handle($request, Closure $next) { if(Auth::check()){ if(Auth::user()->IsAdmin()){ return $next($request); } } return redirect('/'); }
※return redirect(404);で404にリダイレクトする
### 404ページ作成
resources/views/errors/404.blade.php
<h1>Custom 404 Page</h1>
That’s it.
他のアプリケーションでどうやってるかや開発文化などにもよるが、403、404、503あたりはカスタムで作っておきたい。ちょくちょく、404に異常に凝ったデザインを見かけるが、私はシンプル派。デザイン全然勉強してないからかな😅😅😅