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.」が表示される