【问题标题】:Laravel 5 dynamic form validationLaravel 5 动态表单验证
【发布时间】:2016-02-15 13:06:24
【问题描述】:

有人知道如何对下面的动态表单进行验证吗?

<input type="text" name="candidates[0][candidate_number]" value=""/>
<input type="text" name="candidates[0][givennames]" value=""/>

<input type="text" name="candidates[1][candidate_number]" value=""/>
<input type="text" name="candidates[1][givennames]" value=""/>

我觉得我已经尝试了一切!

【问题讨论】:

    标签: forms validation laravel dynamic laravel-5


    【解决方案1】:

    假设您使用的是form requests,这很容易。在您的表单请求类中:

    public function rules() {
        $rules = [];
    
        foreach($this->input('candidates') as $key => $value) {
            $rules["candidates.{$key}.candidate_number"] = ['required', 'numeric'];
            $rules["candidates.{$key}. givennames"] = ['required'];
        }
    
        return $rules;
    }
    

    【讨论】:

    • 谢谢它完美的工作。现在只需要自定义这些错误消息! :)
    • @0w3n86 您可以对表单请求的messages() 函数采用相同的方法。享受吧!
    • 对不起,我很快就联系上了!现在,当我实际在输入中输入任何数据时,它会返回错误:候选人 [0] [候选人编号] 字段是必需的。
    • 对不起,我仍然应该让您的回答保持有效,因为它确实有效。我认为问题可能出在其他地方。
    • 如果您在 rules() 函数中使用 dd($this-&gt;all()),您可以看到它正在设置哪些数据。
    【解决方案2】:

    试试这个方法:

    foreach($request->input('array') as $i => $value) {
        $rules['array.'.$i] = 'validation rules here';
    }
    

    您的规则应如下所示:

    array.0 => 'rule'
    array.1 => 'rule'
    

    等等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-28
      • 2018-02-11
      • 2019-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-22
      相关资源
      最近更新 更多