2016-11-19 99 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

查看我更新的答案,我認爲這會起作用,抱歉給您帶來不便! –