php - 如何在 Laravel 验证中要求数组并防止获得意外 key

标签 php laravel validation

我想为 laravel 中的对象数组设置需要验证并使用以下规则:

[
    'translations.*.languageId' => ['required', 'numeric', Rule::in(Language::all()->pluck('id'))],
    'translations.*.data.title' => 'required|string',
]
但是当我在没有 translations 的情况下发送请求时会出现问题 key validate函数不会为 translation 抛出 require 错误 key 。
所以我添加 translations key 也分开。
[
    'translations' => ['required', 'array'],
    'translations.*.languageId' => ['required', 'numeric', Rule::in(Language::all()->pluck('id'))],
    'translations.*.data.title' => 'required|string',
]
但是如果发送了不应该在 translations 中的额外 key ,就会出现问题。数组(如 locale ),仍然可以在 validate 的输出中看到功能。
我怎样才能防止这种意外的结果?

最佳答案

正如 taylorotwell 回答的那样 my issue并关闭它没有办法 validator 做这个过滤器。

Filter the array to only have the items you actually want after validation.

关于php - 如何在 Laravel 验证中要求数组并防止获得意外 key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66349592/

相关文章:

php - 定义方法 CI_DB_mysqli_result::where()

php - 需要帮助检查用户是否在线

javascript - 按功能验证表单

jQuery 日期选择器验证问题

PHP、MySQL : Need to show Parent name only once. 。差不多了,但仍然有问题

javascript - 如何通过类名和存储获取页面中的所有链接

php - 基于 laravel 中的附加数据透视表列进行查询

php - 用户注册时自动创建个人资料(Laravel 5)

laravel - vuetify-loader 1.6 与 laravel mix 不兼容,vue-loader 15 目前不支持带 oneOf 的 vue 规则

php - 如何在 POST 到数据库之前将用户消息转换为字符串?那么几乎如何使用 php pdo mysql 避免 SQL 注入(inject)等