#laravel #laravel-validation
#laravel #laravel-проверка
Вопрос:
Я хочу проверить поле миниатюр. Когда пользователь загружает файл с типом mime pdf, требуется миниатюра. затем, если пользователь загружает фотографию, тип mime которой не является pdf. поле thumnail не требуется.
Вот код, который я пробовал:
'file' => 'required|mimes:jpg,jpeg,pdf|max:2048',
'thumbnail' => 'exclude_if:file,mimes:pdf|required'
Я знаю, что проверка на миниатюре была неправильной. Кто-нибудь может мне помочь?
Ответ №1:
Итак, вам в основном требуется эскиз, если mime-тип — pdf , вы можете использовать проверку required_if . Сначала добавьте
use IlluminateValidationRule;
Затем,
Validator::make($request->all(), [
'file' => 'required|mimes:jpg,jpeg,pdf|max:2048',
'thumbnail' => Rule::requiredIf(function () use ($request) {
if ($request->file->getMimeType() == 'application/pdf') {
return true;
} else return false;
}),
]);
Комментарии:
1. mime_content_type — это функция php.
2. Спасибо @bhucho, я проверю это.
3. Я получил эту проблему: сообщение»: «mime_content_type(): может обрабатывать только строковые или потоковые аргументы», «exception»: «ErrorException», «file»
4. Я правильно ответил. Спасибо @bhucho за вашу помощь.