【发布时间】:2020-07-05 03:06:04
【问题描述】:
我有一个表单,它的输入数量可以根据用户的行数灵活调整。
| row | FullName | Phone | Email |
|------------------------------------------ |
| 1 | Alex | 06 | a@a.com |
|------------------------------------------ |
| 2 | Bob | 968 | |
|------------------------------------------ |
| 3 | | | j@j.com |
---------------------------------------------
_____________________
| Add new User Button |
---------------------
当每个用户的任何输入被填满时,这些用户的其他输入都是必需的。
例如:第 2 行出现错误,因为 FullName 和 Phone 已填写,但 Email 为空
或
第 3 行出错,因为 FullName 和 Phone 为空,但 Email 已填写。
所以我为此编写了如下验证规则:
$validator = Validator::make($request->all(), [
'User.*.FullName' => 'required_with:User.*.Phone | required_with:User.*.Email',
'User.*.Phone' => 'required_with:User.*.FullName | required_with:User.*.Email',
'User.*.Email' => 'required_with:User.*.FullName | required_with:User.*.Phone',
], $this->messages());
每个用户的输入参数数量很大,我这里列出了3种情况(FullName,Phone,Email)。
如果我像上面那样编写验证,代码就会很混乱。如何重构此代码或对这些类型的验证有任何想法?
【问题讨论】:
标签: laravel validation laravel-5 refactoring laravel-6