Laravel 8 Guest 用户
默认情况下,如果传入的 HTTP 请求不是由经过身份验证的用户发起的,所有的门和策略都会自动返回 false
。但是,您可以通过声明一个「可选」类型提示或为用户参数定义提供一个 null
默认值,从而允许这些授权检查通过您的 Gate 和策略:
<?php
namespace App\Policies;
use App\Models\Post;
use App\Models\User;
class PostPolicy
{
/**
* 确定用户是否可以更新给定的帖子
*
* @param \App\Models\User $user
* @param \App\Models\Post $post
* @return bool
*/
public function update(?User $user, Post $post)
{
return optional($user)->id === $post->user_id;
}
}