L4自定义验证器:阵列必须只有一个主要验证器

时间:2016-11-11 08:26:38

标签: php json validation laravel-4

我正在构建一个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
    }
]

任何想法都非常受欢迎!

0 个答案:

没有答案