如何使用 proengsoft/laravel-jsvalidation 和 Laravel 5 验证数组输入

Posted

技术标签:

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

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

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

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

</td>
<td >
<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

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

【问题讨论】:

【参考方案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 看到它是单个值,在这种情况下不是数组)

以上是关于如何使用 proengsoft/laravel-jsvalidation 和 Laravel 5 验证数组输入的主要内容,如果未能解决你的问题,请参考以下文章

如何使用本机反应创建登录以及如何验证会话

如何在自动布局中使用约束标识符以及如何使用标识符更改约束? [迅速]

如何使用 AngularJS 的 ng-model 创建一个数组以及如何使用 jquery 提交?

如何使用laravel保存所有行数据每个行名或相等

如何使用 Math.Net 连接矩阵。如何使用 Math.Net 调用特定的行或列?

WSARecv 如何使用 lpOverlapped?如何手动发出事件信号?