Laravel验证使用规则?

时间:2016-11-19 17:59:04

标签: php laravel laravel-5 laravel-validation

我目前在验证请求中有验证:

public function rules()
{
    $rule['name'] = "required";
    $rule['provider'] = "required";

    switch ($this->provider) {
        case 'cloudName1':
            $rule['api_key'] = "required";
            break;
        case 'cloudName2':
            $rule['key'] = "required";
            $rule['secret'] = "required";
            break;
    }

    return $rule;
}

我是否可以使用Laravel规则而不是使用switch()条件来做同样的事情?

1 个答案:

答案 0 :(得分:3)

<强>更新:

您可以使用Laravel的required_if规则 -

required_if:anotherField,value,...
  

验证字段必须存在,如果是,则不为空   anotherfield字段等于任何值。

这是您在代码中实现它的方法:

$rule[
    'name' => 'required',
    'provider' => 'required',
    'api_key' => 'required_if:provider,cloudName1',
    'key' => 'required_if:provider,cloudName2',
    'secret' => 'required_if:provider,cloudName2',
];

请参阅Laravel Validation Docs

希望这有帮助!