Laravel 8 通过控制器辅助函数
除了为 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...
}
}