[Laravel]いつも忘れるやつ#4 Gate
app\Providers\AppServiceProvider.php
use Illuminate\Support\Facades\Gate; use App\Models\User;
public function boot(): void { Gate::define('test',function(User $user){ if(条件){ return true; } return false; }); }
routes/web.phpで制限する場合
Route::get('/test',[TestController::class,'test'])->middleware('can:test');
blade.phpで制限する場合
@can('test') 制限対象 @endcan
コントローラーで制限する場合
use Illuminate\Support\Facades\Gate;
public function index(){ Gate::authorize('test'); $posts = Post::all(); return view('post.index',compact('posts')); }
AppServiceProvider.phpの条件に合致しない場合は
「403 | This action is unauthorized.」が表示される