Задать вопрос
Shlop
@Shlop
Full Stack Developer (PHP/Laravel/JavaScript)

Как правильно в Laravel сделать валидацию, чтобы можно было отправлять только true?

У меня в Form Requests классе прописано вот так:

public function rules(): array
    {
        return [
            'flag1' => ['required', 'in:true'],
            'flag2' => ['required', 'in:true'],
            'flag3' => ['required', 'in:true'],
            'flag4' => ['required', 'in:true'],
        ];
    }

Подходит ли такой код для проверки на то что-бы эти 4 флага были установлены в true ?
Я заметил, что когда передаю в FormData просто true то всё ок.
Если отправляю "true" (с кавычками), то не пропускает.

А если передаю JSON, типа такого:
{
    "flag1": "true"
}

то пропускает, хотя это ведь тоже строка тогда как и в FormData "true".
  • Вопрос задан
  • 60 просмотров
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 1
Fragster
@Fragster
помогло? отметь решением!
для этого есть правило accepted + boolean
второе, конечно, пропустит строку '1', но если у модели правильный casts, то все будет хорошо. теоретически можно добавить not_in:1, но надо ли?

Ну или самому строгий валидатор написать https://laravel.com/docs/master/validation#using-r...
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы