阅读(4005) (7)

Laravel 8 通过控制器辅助函数

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

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

<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\Models\Post;
use Illuminate\Http\Request;

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

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