尊重验证特定字段的可选输入数组
Respect Validating optional input array for specific fields
我有一个可供消费者或车队消费者使用的注册输入。取决于它们是什么,取决于它们是否发送有关其机队的额外详细信息。普通消费者将只发送他们的信息,而车队消费者将发送相同的信息,子数组中有 2 个额外字段。
输入数据为:
// POST data registration
// First example, fleet
{
"firstName" : "Mike",
"lastName" : "Dan",
"email" : "email@email.com",
"password" : "rawpassword",
"fleet" : {
"fleetCompanyName" : "My Company",
"driverID" : "1234567890"
}
}
// Second example, non fleet
{
"firstName" : "Mike",
"lastName" : "Dan",
"email" : "email@email.com",
"password" : "rawpassword",
}
如果已设置,我需要验证车队输入(如果已设置,则两个字段都需要有效),但如果未设置,则忽略车队字段。
# Validation
$v = v::key('firstName', v::notEmpty())
->key('lastName', v::notEmpty())
->key('email', v::notEmpty())
->key('password', v::notEmpty())
->key('fleet', v::optional(v::arrayType(),[v::key('fleetCompanyName',v::charset('ASCII')),v::key('driverID', v::intVal())]),false);
这是我当前的迭代,它允许 fleet 是可选的,但无法正确验证数组。
如有任何帮助,我们将不胜感激。
干杯,
菲尔
我无法用一个命令完成,所以找到了这个解决方案:
$v = v::key('firstName', v::notEmpty())
->key('lastName', v::notEmpty())
->key('email', v::notEmpty())
->key('password', v::notEmpty())
->key('fleet', v::optional(v::key('fleetCompanyName', v::charset('ASCII'))), false)
->key('fleet', v::optional(v::key('driverID', v::intVal())), false);
对于我需要的每个子数组值,我需要像上面那样向链中添加另一个命令。希望对其他人有帮助。
我有一个可供消费者或车队消费者使用的注册输入。取决于它们是什么,取决于它们是否发送有关其机队的额外详细信息。普通消费者将只发送他们的信息,而车队消费者将发送相同的信息,子数组中有 2 个额外字段。
输入数据为:
// POST data registration
// First example, fleet
{
"firstName" : "Mike",
"lastName" : "Dan",
"email" : "email@email.com",
"password" : "rawpassword",
"fleet" : {
"fleetCompanyName" : "My Company",
"driverID" : "1234567890"
}
}
// Second example, non fleet
{
"firstName" : "Mike",
"lastName" : "Dan",
"email" : "email@email.com",
"password" : "rawpassword",
}
如果已设置,我需要验证车队输入(如果已设置,则两个字段都需要有效),但如果未设置,则忽略车队字段。
# Validation
$v = v::key('firstName', v::notEmpty())
->key('lastName', v::notEmpty())
->key('email', v::notEmpty())
->key('password', v::notEmpty())
->key('fleet', v::optional(v::arrayType(),[v::key('fleetCompanyName',v::charset('ASCII')),v::key('driverID', v::intVal())]),false);
这是我当前的迭代,它允许 fleet 是可选的,但无法正确验证数组。
如有任何帮助,我们将不胜感激。
干杯,
菲尔
我无法用一个命令完成,所以找到了这个解决方案:
$v = v::key('firstName', v::notEmpty())
->key('lastName', v::notEmpty())
->key('email', v::notEmpty())
->key('password', v::notEmpty())
->key('fleet', v::optional(v::key('fleetCompanyName', v::charset('ASCII'))), false)
->key('fleet', v::optional(v::key('driverID', v::intVal())), false);
对于我需要的每个子数组值,我需要像上面那样向链中添加另一个命令。希望对其他人有帮助。