【问题标题】:how to set single custom validation message for multiple input field?如何为多个输入字段设置单个自定义验证消息?
【发布时间】:2017-11-17 08:41:24
【问题描述】:
public function rules(Request $request)
{
  if ($request->isMethod('POST')) {
    return [
      "skill" => "required|array",
      "skillyear.*" => "required_with:skill|numeric",
    ];
  }
 public function messages()
{
 return [
     'skill.required'=>'Select at least one skill',
     'skillyear.*.required_with'=>"Experience year is required for the selected skill"
];}

所以,对于每个字段,我都会收到这样的消息 enter image description here 我怎样才能只收到一条消息。

【问题讨论】:

  • 您可以过滤重复消息,但理想情况下,您应该将消息附加到它对应的确切字段,这将使重复消息具有一些价值
  • 你检查解决方案了吗?

标签: php laravel laravel-5 laravel-5.3


【解决方案1】:

在控制器中使用简单的 laravel 验证:

    public function getRequest(Request $request) {

                    $this->validate($request, [
                        'param1' => 'required',
                        'param2' => 'required'
                    ], [
                      'required' => 'Field is required'  
                       ], [
                        'param1' => 'field name 1 - message',
                        'param2' => 'field name 2 - message'
                    ]);

更多:https://laravel.com/docs/5.5/validation

【讨论】:

    【解决方案2】:

    如下更改。添加一个新元素为skillyears,您将在skillyears 中得到错误,得到单个错误

    public function rules(Request $request)
    {
      if ($request->isMethod('POST')) {
        $request->skillyears = count($request->skillyear);
        return [
          "skill" => "required|array",
          "skillyear.*" => "numeric",
          "skillyears" => "required_with:skill|min:1"
        ];
      }
     public function messages()
    {
     return [
         'skill.required'=>'Select at least one skill',
         'skillyears.min' => "Experience year is required for the selected skill",
    ];}
    

    可能不准确,但你可以根据自己的想法构思

    【讨论】:

      猜你喜欢
      • 2013-10-02
      • 1970-01-01
      • 2014-10-31
      • 2012-11-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-16
      相关资源
      最近更新 更多