laravel - Laravel FormRequest:客户端发送带有点的属性
问题描述
客户端发送如下内容:
foo.1.bar=hello
在我的 FormRequest 类中,我尝试过:
public function rules()
{
return [
'foo.1.bar' => 'string|nullable' // does not work
'foo' => 'array|nullable' // does not work
'foo' => [ // does not work
'1' => [
'bar' => 'string|nullable'
]
]
知道如何处理吗?
解决方案
尝试手动获取参数的值,然后对其进行验证:
class YourRequest extends FormRequest
{
public function rules(): array
{
return [...];
}
public function withValidator(Validator $validator): void
{
$value = $this->get('foo.1.bar') ?: $this->get('foo_1_bar');
$validator->after(function (Validator $validator) use ($value) {
if ($value == null) {
$validator->errors()->add('foo.1.bar', 'Error Message.');
$validator->errors()->add('foo_1_bar', 'Error Message.');
}
});
}
}
推荐阅读
- oauth - Oauth 授权码 PKCE:如何在 SPA 中保持上下文超出 302 重定向?
- android - 为什么复选框矩形远小于包含它的容器?
- c - 正确释放内存
- list - 在机器人框架中合并 2 个列表
- java - 如何将此 SQL(或类似)转换为 Criteria JPA
- mongodb - MongoDB 聚合返回平均值仅当日期键大于 PyMongo 中的特定日期时
- python-3.x - 当我添加 url 子路径级别(即商店/购物车)时,Flask 会“丢失”静态文件夹。它路由到购物车页面,但找不到我的 CSS、JS 等
- c# - 为 C# library/dll 中的类型创建公共别名
- javascript - Javascript - 没有重复字符的最长子字符串时间复杂度?
- three.js - 三.JS r97 问题 GL ERROR :GL_INVALID_OPERATION : glDrawElements: 尝试访问属性 2 中超出范围的顶点