Я получил эти данные из запроса:

{
    "type": "custom",
    "start_week": "2020-W19"
}

И мои правила проверки:

    return [
        'type' => 'required|in:standard,custom',
        'start_week' => 'required|date_format:Y-\WW',
    ];

Что дает мне такой результат:

"errors": {
    "start_week": [
        "The start week does not match the format Y-\\WW."
    ]
}

Я использовал этот формат раньше для проверки ввода типа недели, такого как «2020-W19».

Я что-то делаю не так, что мне делать?

1
Adem Tepe 20 Май 2021 в 15:37

1 ответ

Лучший ответ

Я попробовал. Твое право. На удивление это не работает.

Но вот способ, как с этим справиться. Используя замыкания и экземпляр Carbon напрямую, мы можем получить собственное настраиваемое правило, которое отлично работает:

$request->validate([
    'start_week' => [
        'required',
        function ($attribute, $value, $fail) {
            if (!Carbon\Carbon::hasFormat($value, 'Y-\WW')) {
                $fail('The '.$attribute.' is invalid.');
            }
        },
    ]
]);

Дополнительная информация: Документ

1
Mahdi Jedari 20 Май 2021 в 13:13