Laravel Spark 中的自定义验证消息

Posted

技术标签:

【中文标题】Laravel Spark 中的自定义验证消息【英文标题】:Custom Validation Message in Laravel Spark 【发布时间】:2019-11-01 20:45:54 【问题描述】:

需要更改 Laravel Spark 中的验证消息,我在注册表单中添加新字段但需要更改显示的消息。

普通的 Laravel 我可以将规则和自定义消息传递给验证功能,但不确定我在 Spark 中如何做。

Spark::validateUsersWith(function () 
  return [
   'name' => 'required|max:255',
   'company' => 'required_if:ptype,Company',
   'contact' => 'required',
   'country' => 'required_if:ptype,Company',
   'residence' => 'required_if:ptype,Creator',
   'nationality' => 'required_if:ptype,Creator',
   'ptype' => 'required',
   'email' => 'required|email|max:255|unique:users',
   'password' => 'required|confirmed|min:6',
   'vat_id' => 'max:50',
   'terms' => 'required|accepted',
   ];
);

默认错误信息:当 ptype 为 Company 时,公司字段为必填项。

我需要的是:公司字段是必需的。

【问题讨论】:

尝试在您的 resources/lang/en/validation.php 文件的 custom 部分中覆盖它们。 【参考方案1】:

您可以通过覆盖messages() 方法来自定义表单请求使用的错误消息。示例:

public function messages()

    return [
        'title.required' => 'A title is required',
        'body.required'  => 'A message is required',
    ];

然后你可以像这样将它们作为第三个参数传递:

$this->validate($request, rules(), messages()); 

参考:Laravel documentation

【讨论】:

在普通的 Laravel 中就是这样,在 Spark 中呢。有一种不同的方法。 您是否尝试过这样做,是否出现任何错误?

以上是关于Laravel Spark 中的自定义验证消息的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.6.7 和 Vue.js 中的自定义错误消息,尤其是组件

Laravel 验证规则的自定义错误消息:维度

Laravel 扩展规则消息

是否可以更改 Laravel 的验证器回调中的错误消息?

Laravel 5 中的自定义验证器

将当前字段的值传递给 Laravel 中的自定义验证函数