2017-04-14 115 views
2

叫我笨,但我不明白:) 我想設置驗證器規則,所以它只會在兩個字段中的一個出現時纔會通過(adgroup或all_adgroups)。Laravel驗證required_without_all

這裏是我的控制器:

$this->validate($request, 
     [ 
      'new_target_cpa_value' => 'required|numeric', 
      'adgroups' => 'exists:google.ad_groups,id|required_without_all:all_agroups', 
      'all_agroups' => 'required_without_all:adgroups' 
     ] 
    ); 
    dd($request->all()); 

這裏是DD:

"_token" => "aHjluUXPuZpEbglmVt4UePhriGvRWDOjk3OgfF88" "new_target_cpa_value" => "123" "adgroups" => array:1 [▶] "all_agroups" => "1"

+0

其輸入類型是廣告組?這是一個複選框或多選? – lewis4u

+0

adroups是多選。 name is adgroups [] 我嘗試了adgroups和adgroups [] –

+0

並且至少必須選擇一個?要麼?一個組或所有組... – lewis4u

回答

3

試試這個:

$this->validate($request, 
     [ 
      'new_target_cpa_value' => 'required|numeric', 
      'adgroups' => 'exists:google.ad_groups,id', 
      'all_agroups' => 'required_unless:adgroups,null' 
     ] 
    ); 
+0

jel radi Branko?如果選擇了任何一個廣告組,all_groups將不被要求,但是如果沒有選擇任何組,那麼將需要all_groups字段 – lewis4u

+0

hehe :) 給我幾分鐘檢查。 –

+0

驗證規則required_unless需要至少2個參數。 :) 也許這將是我寫自定義驗證規則的最佳選擇.. –