我已按照此处的文档进行操作:
https://laravel.com/docs/5.8/validation#form-request-validation
我创建了一个自定义请求 StoreName
php artisan make:request StoreName
然后添加以下验证规则:
public function rules()
{
return [
'name' => 'required|max:255|min:4'
];
}
然后根据我的 Controller 中的文档类型提示:
public function store(StoreName $request)
{
$validated = $request->validated();
}
但是,当我向此端点发送 post 请求时,我会从 Laravel 返回一个 403
。当我删除 StoreName 自定义验证并简单地输入标准 Laravel Illuminate\Http\Request
时,请求工作正常(显然删除了 valid() 方法之后)。
所以 403 来 self 的自定义验证请求,我不知道为什么?我检查了 StoreName.php 文件的文件权限,它们与项目中的所有其他文件相同。
我正在为我的开发服务器使用php artisanserve
,所以也没有时髦的Apache/Nginx配置覆盖东西。当应用自定义验证请求时,除此端点之外的所有其他端点都可以工作。
问题可能是什么?
<小时/>编辑:
可能值得注意的是,我也没有更改 Laravel 在新的自定义请求验证中生成的默认authorize()方法:
public function authorize()
{
return false;
}
最佳答案
在您的自定义请求类中,您有一个如下所示的方法:
public function authorize()
{
return true; // this is false by default which means unauthorized 403
}
关于php - Laravel 403 禁止自定义请求验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56235420/