阅读(4012) (8)

Laravel 8 通过控制器辅助函数

2021-06-29 16:33:53 更新

除了为 User 模型提供的有用方法之外,Laravel 还为任何扩展 AppHttpControllersController 基类的控制器提供了一个有用的 authorize 方法。 与 can 方法一样,此方法接受您要授权的操作的名称和相关模型。 如果操作未被授权,authorize 方法将抛出一个 IlluminateAuthAccessAuthorizationException ,默认的 Laravel 异常处理程序将转换为具有 403 状态代码的 HTTP 响应:

<?php

namespace AppHttpControllers;

use AppHttpControllersController;
use AppModelsPost;
use IlluminateHttpRequest;

class PostController extends Controller
{
    /**
     * 更新指定博客帖子
     *
     * @param  Request  $request
     * @param  Post  $post
     * @return Response
     * @throws IlluminateAuthAccessAuthorizationException
     */
    public function update(Request $request, Post $post)
    {
        $this->authorize('update', $post);

        // The current user can update the blog post...
    }
}