【问题标题】:Laravel validation messages array indices starting from 0Laravel 验证消息数组索引从 0 开始
【发布时间】:2020-09-20 20:52:05
【问题描述】:

如果在表单请求中我有规则

[
    'items' => ['required', 'array'],
    'items.*' => ['required', 'numeric'],
]

然后错误信息返回如下:

"items.0" => array:1 [
  0 => "The selected items.0 is invalid."
]

有没有办法让消息看起来像“选定的项目 #1 无效”或类似的东西,实际上是人类可读的?

请注意,我在全球范围内需要整个系统,已经有超过 500 个表单请求类,虽然没有多少使用数组验证,所以更改扩展类或添加特征不会太可怕

【问题讨论】:

  • 你能展示你的请求数据集吗?

标签: php laravel validation laravel-5 eloquent


【解决方案1】:

试试这个,

[
   'items' => ['required', 'array'],
   'items.*' => ['required', 'numeric'],
],
[
    'items.required' => 'Your Message',
]

【讨论】:

  • 我可以使用items.*.numeric => '...',但这只是针对一个请求的解决方案,并且仍然不允许我使用'Item #1 ...' 而不是'items.0 ...'
【解决方案2】:

如果您使用的是自定义请求,那么您可以这样做:


public function rules()
    {
        $rules = [];
        foreach ($this->request->get('items') as $key => $value) {
            $rules[$key] = 'required';
        }
        return $rules;
    }

希望对您有所帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-07
    • 1970-01-01
    • 2019-12-22
    • 1970-01-01
    • 2019-04-15
    • 2013-05-29
    • 1970-01-01
    相关资源
    最近更新 更多