2016-11-19 7 views
1

я в настоящее время проверки в запросе проверки: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() условие, чтобы сделать то же самое?

ответ

3

ОБНОВЛЕНО:

Вы можете использовать required_if правило Laravel в -

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

Надеется, что это помогает!

+0

Обновлен мой ответ! –

+0

Вы не использовали 'anotherfield' для' required_with' - вы только что использовали значение? –

+0

Смотрите мой обновленный ответ, я думаю, что это сработает, извините за неудобства! –