【问题标题】:How to validate array inputs using proengsoft/laravel-jsvalidation and Laravel 5如何使用 proengsoft/laravel-jsvalidation 和 Laravel 5 验证数组输入
【发布时间】:2017-02-04 05:16:33
【问题描述】:

您好,我正在尝试验证数组输入并像这样选择:

<td width="23%">                                            
{!!Form::select('mmscod_id[]',['' => '- Seleccione un material -'] +$mat,null,['class' => 'form-control', 'id'=>'mmscod_id'])!!}    
</td>

<td width="17%">
<input type="text" class="form-control" id="cantidad" name="vtcanp[]"/> 

</td>
<td width="17%">
<input type="text" class="form-control" id="precio" name="vtprep[]"/>
</td>

我使用proengsoft/laravel-jsvalidation 进行客户端验证。对于后端,我使用 Laravel 的表单请求。

我也用了这个网站的方法:How To: Validate an array of form fields with Laravel但是不行,还报错:

error1

error2

编辑: 我忘了提到这些元素是动态创建的 请帮帮我

【问题讨论】:

    标签: javascript laravel validation laravel-5


    【解决方案1】:

    Laravel 支持验证数组输入。您需要使用此约定来验证数组项。

    $rules = [
        'vtcanp.*' => 'required',
    ];
    

    例如:

    这是我的自定义请求类

    class InvoiceRequest extends FormRequest
    {
        /**
         * Determine if the user is authorized to make this request.
         *
         * @return bool
         */
        public function authorize()
        {
            return true;
        }
    
        /**
         * Get the validation rules that apply to the request.
         *
         * @return array
         */
        public function rules()
        {
            $rules =[
                'client' => 'required',
                'date' => 'required',
                'total' => 'required',
                'discount' => 'required',
                'item.*' => 'required',
                'rate.*' => 'required',
                'quantity.*' => 'required',
    
    
            ];
    
    
            return $rules;
        }
    }
    

    并在视图中添加

    {!! JsValidator::formRequest('App\Http\Requests\InvoiceRequest') !!}
    

    这些验证并显示错误消息以及我动态添加到视图中的输入数组的位置。

    【讨论】:

    • 我试过但没有验证客户端。我认为 proengsoft/laravel-jsvalidation 还不支持这个验证规则。
    • 对我来说它适用于动态创建的输入字段。我正在使用 Laravel 5.2
    • 使用 Laravel 5.5 和 JsValidation 2.2.1,这个答案对我来说很好,但如果我提供“数组”类型验证,它将失败,例如'rate' => '必需|数组|min:1'。当数组中只有 1 个元素时,这会破坏 JsValidation(JsValidation 看到它是单个值,在这种情况下不是数组)
    猜你喜欢
    • 2016-12-16
    • 2015-08-22
    • 1970-01-01
    • 2018-08-30
    • 2017-11-13
    • 2014-09-20
    • 2018-04-04
    • 2015-08-17
    相关资源
    最近更新 更多