代码之家  ›  专栏  ›  技术社区  ›  t0ledoj

Laravel 5.5带OR/ELSE条件的验证

  •  0
  • t0ledoj  · 技术社区  · 8 年前

    我是laravel的新手,我想知道是否有一种方法可以在$规则中使用或/或有条件,因为我正在努力进行以下验证: 如果字段为Z,则大小必须为y,否则为x。 我试过这个,但它总是有效的数据大小:11

    'type   => 'required',
    'field' => ['required', ('type == 1' ? 'size:11' : 'size:14')],
    

    有人有线索吗?提前感谢

    2 回复  |  直到 8 年前
        1
  •  1
  •   Marcin Nabiałek    8 年前

    我假设您使用表单请求验证,因此可以执行以下操作:

    $rules = [
       'type' => 'required',
       'field' =>  ['required'];
    ];
    
    $rules['field'][] = ($this->input('type') == 1) ? 'size:11' : 'size:14';
    
    return $rules;
    
        2
  •  0
  •   Vicky Gill    8 年前

    使用Laravel验证器, 参考链接: https://laravel.com/docs/5.5/validation

     $validatedData = $request->validate([
                'title' => 'required|unique:posts|max:255',
                'body' => 'required',
            ]);