用途:为 Laravel 应用提供授权(访问控制)的实践模式,覆盖 Gate、Policy、中间件、Blade 指令、表单请求与控制器授权,并给出测试与检查清单。
主要能力:Gate 用于与模型无关的通用能力检查,如 Gate::define('access-admin', ...)、Gate::allows、Gate::authorize、Gate::forUser;Policy 用于基于模型的授权,遵循 App\Policies{Model}Policy 约定可自动发现,支持 before() 返回 null 继续向下检查,方法可返回 bool 或 Response;Response 支持 Response::deny、denyWithStatus、denyAsNotFound、allow,并可用 Gate::inspect 获取消息而不抛异常。
使用方式:路由层可用 ->can('update', 'post') 或 middleware('can:viewAny,App\Models\Post');控制器用 $this->authorize('update', $post);表单请求在 authorize() 中调用 $this->user()->can(...);Blade 使用 @can、@canany、@cannot 控制界面渲染。测试可直接断言 $user->can(...),或通过 HTTP 断言 403,也可用 Gate::before(fn () => true) 绕过授权测试业务逻辑。
适用场景:需要在 Laravel 中集中、可复用、可测试地管理权限,避免手写 if/abort(403) 绕过 Policy 的场景。
限制:资料未提供具体版本要求、安装步骤、性能数据或收费信息;示例代码需按项目实际模型与命名空间调整。