我正在构建一个API - 这并不奇怪! - 接受JSON。
传递的JSON的某个元素,我们称之为“游戏”是一个数组并接受一个或两个元素,具有以下结构(这个必须失败):
"games": [{
"title": "Blabla",
"primary": 1
},
{
"title": "Blabla2",
"primary": 1
}
]
所以,我的目标是建立一个自定义验证器,只允许其中一个游戏成为主要游戏。 我已经开始构建这样的东西,但我不在那里:
Validator::extend( 'primary_unique', function ($gamesRules, $gamesArray, $parameters, $validator) {
if (count($gamesArray) > 1) {
$primaryExists = false;
foreach ($gamesArray as $game) {
if ($primaryExists && $game['primary'] == 1){
return false;
}
if ($game['primary'] == 1) {
$primaryExists = true;
}
}
return true;
}
}
请考虑我在这个项目中使用Laravel 4.2。
例如,这个应该通过验证:
"games": [{
"title": "Blabla",
"primary": 0
},
{
"title": "Blabla2",
"primary": 1
}
]
任何想法都非常受欢迎!