表单数组自定义验证

表单数组自定义验证
数据如图,input[name]名称分别是mobile[]、password[]、nickname[]提交验证规则为,如下图:

<div class="form-group row">
        <label for="" class="col-sm-2 control-label">会员账号</label>
        <div class="col-sm-2">
          <input type="text" class="form-control" name="mobile[]" value="" autocomplete="off" placeholder="请输入会员手机号">
        </div>
          <div class="col-sm-2">
              <input type="text" class="form-control" name="password[]" value="" autocomplete="off" placeholder="请输入密码">
          </div>
        <div class="col-sm-2">
          <input type="text" class="form-control" name="nickname[]" value="" autocomplete="off" placeholder="请输入会员昵称">
        </div>
          <div class="col-sm-1 remove">
              <button type="button" class="btn btn-danger remove-btn">移除</button>
          </div>
      </div>

表单数组自定义验证
这样验证一直提示不能为空。
请各位大神指教。

表单数组自定义验证
正常的如何书写。

#定义报错信息
            $message = [
                'mobile.*.required'   => '账号不能为空',
                'mobile.*.distinct'   => '账号有重复',
                'mobile.*.isMobile'   => '账号为手机号',
                'password.*.required' => '密码不能为空',
                'password.*.min'      => '密码最小6为啥',
                'password.*.max'      => '密码最大20为啥',
                'nickname.*.required' => '昵称不能为空',
                'nickname.*.max'      => '昵称最长12个字符',
            ];

            $x_validate = [
                'mobile.*'   => 'required|distinct|is_mobile',
                'password.*' => 'required|min:6|max:20',
                'nickname.*' => 'required|max:12',
            ];
            #参数验证
            $v = Validator::make($request->all(), $x_validate, $message);
            if ($v->fails()) {
                return redirect()->back()->withErrors($v)->withInput();
            }
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 4

这个怎么解决的老铁?

6年前 评论

5.1 的版本不支持验证类带(*)的规则,升级到高版本就没有什么问题了,目前升级到 5.5 的版本,成功验证规则。

6年前 评论

你好我想问下 在request 里怎么写。

public function rules()
{
return [
'standard_data' => 'array|required',
'standard_data..client_id' => 'required|integer',
'standard_data.
.test_item_id' => 'required|integer|distinct',
'standard_data..testing_standard' => 'required|max:100',
'standard_data.
.request' => 'required|max:200',
'standard_data..remark' => 'required|max:200',
'standard_data.
.testing_standard_en' => 'sometimes|max:100',
'standard_data..request_en' => 'sometimes|max:200',
'standard_data.
.remark_en' => 'sometimes|max:200',
];
}

function attributes()
{
    return [
        'standard_data'                       => '提交数据',
        'standard_data.*.client_id'           => '往来户id',
        'standard_data.*.test_item_id'        => '测试项目id',
        'standard_data.*.testing_standard'    => '标准(CN)',
        'standard_data.*.request'             => '要求(CN)',
        'standard_data.*.remark'              => '备注(CN)',
        'standard_data.*.testing_standard_en' => '标准(EN)',
        'standard_data.*.request_en'          => '要求(EN)',
        'standard_data.*.remark_en'           => '备注(EN)',
    ];
}

public function messages()
{
    return [
        'array'    => ':attribute格式错误',
        'required' => ':attribute必填',
        'integer'  => ':attribute非整数',
        'max'      => ':attribute最长:max字符',
        'distinct' => ':attribute有重复的',
    ];
}

这样好像不行,错误信息无法提示啊

5年前 评论

@609468798 你是怎么传递message信息的

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!