我目前在验证请求中有验证:
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()
条件来做同样的事情?
答案 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',
];
希望这有帮助!