php - Laravel 403 禁止自定义请求验证

标签 php laravel

我已按照此处的文档进行操作:

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/

相关文章:

php - 使 WooCommerce 结帐运输字段可见并删除 "Ship to different address?"复选框

php - 我们如何在用户使用javascript登录时强制删除缓存

php - 使用 API 平台创建报告端点 (https ://api-platform. com)

javascript - Vue.js 如何在实例上定义方法

database - 如何在 Laravel 中创建数据库模式(表)?

php - 将 Laravel 从 5.6 升级到 6.0 后,调用未定义的 str_random() 函数不起作用

php - 在 PHPMyAdmin 中收到 MySQL 错误

php - 使用 PDO 和 MySQL 从表中的列检索值

laravel - 如果 Laravel 的 Blade 模板检查文件是否存在

php - Laravel 表 : there can be only one auto column and it must be defined as a key