Валидация в Laravel на основе длины другого поля

Хочу сделать поле "Краткое название" обязательным для заполнения, если значение поля "Название" имеет длину более 300 символов. Может кто-то подобное уже реализовывал?

Пытаюсь написать правило валидации, гугл не помогает.

Заранее благодарю за помощь.


Ответы (1 шт):

Автор решения: Dmitrii Sedov

Всё есть в документации в разделе валидация. Используйте фасад Rule. В качестве входного параметра должна быть функция возвращающая bool или просто значение с типом bool

use Illuminate\Validation\Rule;

...

$request->validate([
    'name' => 'required|string|min:10',
    'slug' => [
        'string',
        'nullable',
        Rule::requiredIf(mb_strlen($request->name) >= 300)
    ]
]);
→ Ссылка