知っておいていただきたいこと – 12

今日もlaravelのTipsをいくつか共有したいと思います。

アプリケーションを作成する際、他のユーザーがアクセスできない管理者ロールを用意することがほとんどでしょう。別のコントロールを繰り返し追加する代わりに、 ルートやコントローラに適用できるミドルウェアを作成することを検討しましょう。これは、absort ヘルパーや absort_unless ヘルパーを使えば簡単に実現できます。

namespace App\Http\Middleware;

use Closure;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Auth;

class CheckUserIsAdmin{
     public function handle(Request $request, Closure $next){
        abort_unless(Auth::user()?->isAdmin(), Request::HTTP_FORBIDDEN);
        return $next($request);
     }
}

そして、そのミドルウェアをルートHTTPカーネルに追加する。

namespace App\Http;

use Illuminate\Foundation\Http\Kernel as HttpKernel;

class Kernel extends HttpKernel{
    protected $routeMiddleware = [
       'admin' => \App\Http\Middleware\CheckUserIsAdmin::class;
     ];
}

最後に、ミドルウェアを適用する

use App\Http\Middleware\AdminUserController;
use App\Http\Middleware\AdminDashboardController;

Route::prefix('admin')->middleware('admin')->group(function(){
  Route::get('/',[AdminDashboardController::class, 'index']);
  Route::get('/users',[AdminUserController::class, 'index']);
});

ということで、今回はこれで終わります。

金曜担当 – Ami



アプリ関連ニュース

お問い合わせはこちら

お問い合わせ・ご相談はお電話、またはお問い合わせフォームよりお受け付けいたしております。

tel. 06-6454-8833(平日 10:00~17:00)

お問い合わせフォーム