2017-06-15 65 views
0

我在我的html表單中有一個表格,用戶可以隨意添加任意數量的行。在表格下面我有一個複選框,當選中時表示用戶沒有輸入。Laravel:在兩個單獨的條件下進行驗證

我在Laravel中有一堆輸入在數組中(所以它可以命名[0]和名稱[1]或只是名稱[0],具體取決於用戶添加了多少行)。我也有一個複選框,這使得我所有的輸入消失,並且如果用戶選中它,我不想讓任何字段成爲必需。

我現在的規則是:

[ 
     'TB1_course.*' => 'required_if:TB1_checkbox, 0|required_with:TB1_section.*,TB1_session.*,TB1_reqElec.*', 
     'TB1_section.*' => 'required_if:TB1_checkbox, 0|alpha_num', 
     'TB1_session.*' => 'required_if:TB1_checkbox, 0' 
] 

我的驗證規則要求:

(1)如果用戶選擇複選框,我想使所需的全部表中沒有字段(不管這些輸入是空的或不空的)

(2)如果用戶沒有選擇複選框並且一行完全留空(即TB1_course [0],TB1_section [0]和TB_session [0]爲空或提供TB1_course [0],TB1_section [0],TB1_session [0]但離開TB1_course [1],TB1_secti on [1]和TB1_session [1]空),輸入有效。 (3)如果用戶沒有選擇checbox並且在同一行上給出了丟失的信息(即,TB1_course [0]不是空的,但是TB1_section [0]和TB1_session [0]是空的),(0127)使其無效

我不確定如何去做這件事,因爲我也不得不擔心指數。我是驗證初學者,所以請原諒,如果我問一個非常基本的問題。任何幫助是極大的讚賞。

回答

1

您的輸入應該應用required_without:複選框規則,而複選框應該應用required_without_all:input1,input2,...規則。然後,您可以對輸入使用required_unless規則來檢查您按照上述佈局指導的有效性。

+0

所以像'TB1_course。*'=> required_without:TB1_checkbox | required_unless'? 然後:TB1_checkbox =>'required_without_all:TB1_course。*,TB1_section。*,TB1_session。*'? – Muhammad

+0

是的,你會聽到很多規則,但它可以完成。 – btl

+0

不需要required_without,因此每個輸入都是必需的? – Muhammad