php - 合并验证错误并返回一条消息

标签 php laravel laravel-5

我有两个数组要在我的自定义 Request 中验证:

$rules = [
  'params.words1.*.value' => 'required|string|between:5,50',
  'params.words2.*.value' => 'required|string|between:5,50',
];

这将返回每个单词的错误消息。但我想要一个单一的一般信息,比如“有些词是无效的”。
有没有 Laravel 的方式来做到这一点?

最佳答案

你可以这样做:

$messages = [
    'params.*' => 'Some of the words are invalid.',
];

编辑:

我想我可能已经找到了解决方案:

首先,确保在顶部导入 Validator 和 HttpResponseException:
use Illuminate\Contracts\Validation\Validator;
use Illuminate\Http\Exceptions\HttpResponseException;

然后,您可以覆盖 native failedValidation方法并根据需要更改错误:
protected function failedValidation(Validator $validator)
{
    // Get all the errors thrown
    $errors = collect($validator->errors());
    // Manipulate however you want. I'm just getting the first one here,
    // but you can use whatever logic fits your needs.
    $error  = $errors->unique()->first();

    // Either throw the exception, or return it any other way.
    throw new HttpResponseException(response(
        $error,
        422
    ));
}

关于php - 合并验证错误并返回一条消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49824847/

相关文章:

php - 为什么 mb_convert_case 在 PHP 5.4 中破坏了我的字符串,而在 5.2 中却没有?

php 表单 - 2 个按钮(一个用于销毁 session 并重新加载页面,一个用于继续下一页)

php - 如何在 laravel 5.4.10 中添加自定义类

javascript - 将表单数据从表单的 View 传递到 Controller

php - 不知道如何在 laravel 中管理这个数据库现实

php - 如何在 Laravel 5.2 中编写 sql 连接查询

php - 使用正则表达式和四行上下文匹配搜索

javascript - 我可以通过哪种方式将 CSV 文件发送到某个地方然后进行一些处理然后返回 json 数据?

mysql - 如何在 Laravel 的 MySQL 8 中永久更改 sql_require_primary_key 值?

laravel - 限速自由文本搜索