Laravel:在两个不同的条件下进行验证

时间:2017-06-15 14:40:11

标签: laravel validation laravel-5 laravel-5.2 laravel-5.3

我的html表格中有一个表格,用户可以随意添加任意数量的行。在表格下方,我有一个复选框,选中后表示用户没有输入。

我在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_section [1]和TB1_session [1]为空),输入有效

(3)如果用户没有选择checbox并且在同一行上也没有信息(即TB1_course [0]不是空的,但TB1_section [0]和TB1_session [0]是空的),使其无效

我不确定如何解决这个问题,因为我也不得不担心指数。我是验证的初学者,所以如果我问一个非常基本的问题,请原谅。任何帮助是极大的赞赏。

1 个答案:

答案 0 :(得分:1)

您的输入应该应用required_without:复选框规则,而复选框应该应用required_without_all:input1,input2,...规则。然后,您可以对输入使用required_unless规则,以检查您在上面列出的指南的有效性。