2016-11-19 110 views
1

我目前在验证请求验证:使用规则进行Laravel验证?

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()条件做同样的事情?

回答

3

更新:

您可以使用Laravel的required_if规则 - 如果 anotherfield字段等于任何值

required_if:anotherField,value,... 

下验证的字段必须存在,并且不为空。

这是你如何落实到你的代码:

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

Laravel Validation Docs

希望这有助于!

+0

更新了我的答案! –

+0

你没有使用'anotherfield'作为'required_with' - 你刚刚使用了值? –

+0

查看我更新的答案,我认为这会起作用,抱歉给您带来不便! –