Способы валидации

Передача данных для валидации написано на странице Создание формы и валидация.

$request->validate([

    # строка
    'code'   => 'alpha',         // только буквы (пробелы нельзя)
    'code'   => 'alpha_num',     // только буквы и числа (пробелы нельзя)
    'slug'   => 'alpha_dash',    // только буквы, числа, тире и нижнее подчёркивание (пробелы нельзя)
    'active' => 'boolean',       // 1, 0, true или false
    'title'  => 'size:5',        // должно быть 5 символов
    'title'  => 'min:3',         // должно быть минимум 3 символа
    'title'  => 'max:255',       // должно быть максимум 255 символов
    'title'  => 'between:3,255', // кол-во символов должно быть между 5 и 255

    # формат строки
    'page'   => 'url',   // ссылка, например http://know-online.com/
    'send'   => 'email', // почта, например mail@know-online.com
    'user'   => 'ip',    // IP-адрес пользователя (IPv4 или IPv6)

    # числа
    'count'  => 'integer',            // только числа (пробелы нельзя)
    'count'  => 'numeric',            // только числа (пробелы нельзя)
    'zip'    => 'digits:6',           // должно быть 6 цифр
    'number' => 'digits_between:4,6', // должно быть 4, 5 или 6 цифр
    'number' => 'gte:5',              // значение должно быть больше или равно «5»
    'number' => 'lte:5',              // значение должно быть меньше или равно «5»

    # дата
    'expire'     => 'nullable|date',         // дата (например 2019-07-23)
    'start_date' => 'date|after:today',      // указанная дата должна быть больше текущей даты
    'end_date'   => 'date|after:start_date', // дата должна быть больше даты из параметра "start_date"
    'start_date' => 'date|before:today',     // указанная дата должна быть меньше текущей даты
    
    # загрузка файлов (картинки)
    'avatar' => 'dimensions:min_width=100,min_height=200', // минимальная ширина и высота
    'avatar' => 'dimensions:max_width=100,max_height=200', // максимальная ширина и высота
    'avatar' => 'dimensions:width=100,height=200',         // ширина и высота изображения
    'avatar' => 'image', // файл должен быть картинкой (jpeg, png, bmp, gif, svg или webp)
    'avatar' => 'mimetypes:image/jpeg,image/png', // поддерживаемые MIME файла (image/jpeg, image/png)

    # другое
    'title'       => 'required',      // поле обязательно для заполнения
    'pass_verify' => 'same:password', // текущее поле должно совпадать с указанным полем
    'agreed'      => 'accepted',      // чекбокс отмечен

]);

Для одного поля можно передавать несколько параметров, разделённые через символ «|».

'title' => 'required|max:255',