【问题标题】:How can I validate field by another field value? Laravel 5.4如何通过另一个字段值验证字段?拉拉维尔 5.4
【发布时间】:2017-09-21 15:02:25
【问题描述】:

这是我的请求规则。

public function rules()
{
    return [
        "namespace" => "required|max:20",
        "key" => "required|max:30",
        "value" => "required",
        "value_type" => "requied|in:string,integer",
    ];
}

如果“value_type”是“integer”,我只需要“value”字段中的整数。有什么方法可以验证吗? Laravel 5.4

我找到了简单的解决方案

public function rules()
{
    $cond = '';
    if ($this->request->get('value_type') == 'integer') {
        $cond = '|integer';
    }

    return [
        "mf_id" => "required|integer",
        "resource" => "required|string",
        "res_id" => "required|integer",
        "value" => "required{$cond}",
        "value_type" => "required|in:string,integer",
        "parent" => "string",
        "parent_id" => "integer",
    ];
}

【问题讨论】:

    标签: laravel laravel-validation


    【解决方案1】:

    $v = Validator::make($data, $this->rules());

    那么你需要使用条件添加规则。

    $v->sometimes(['value'], 'required|integer', function ($data) { return is_numeric($input->value_type); });

    检查:-

    https://laravel.com/docs/5.4/validation#conditionally-adding-rules

    【讨论】:

      猜你喜欢
      • 2021-03-11
      • 2017-10-02
      • 2019-06-29
      • 2019-03-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-14
      相关资源
      最近更新 更多