РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
633 of 1392 menu

Правило dimensions

Правило dimensions применяется к полям формы, которые содержат загруженные изображения, и позволяет проверить соответствие их размеров заданным критериям. Правило принимает массив параметров, определяющих требования к ширине, высоте, соотношению сторон и другим характеристикам изображения. Если изображение не соответствует указанным параметрам, валидация не проходит.

Синтаксис

<?php Rule::dimensions($parameters); ?>

Параметр $parameters представляет собой массив ключей, определяющих требования к изображению. Доступные ключи: min_width, min_height, max_width, max_height, width, height, ratio.

Пример

Давайте проверим, что загружаемое изображение имеет ширину не менее 200 пикселей и высоту не менее 150 пикселей:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesValidator; use IlluminateValidationRule; class ImageController extends Controller { public function upload(Request $request) { $validator = Validator::make($request->all(), [ 'image' => [ 'required', 'image', Rule::dimensions([ 'min_width' => 200, 'min_height' => 150, ]), ], ]); if ($validator->fails()) { return response()->json($validator->errors(), 422); } return response()->json(['message' => 'Image uploaded successfully']); } } ?>

Пример

Давайте проверим, что изображение имеет точную ширину 400 пикселей и высоту 300 пикселей:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesValidator; use IlluminateValidationRule; class AvatarController extends Controller { public function update(Request $request) { $validator = Validator::make($request->all(), [ 'avatar' => [ 'required', 'image', Rule::dimensions([ 'width' => 400, 'height' => 300, ]), ], ]); if ($validator->fails()) { return back()->withErrors($validator); } return redirect()->route('profile')->with('success', 'Avatar updated'); } } ?>

Пример

Давайте проверим, что изображение имеет соотношение сторон 1:1 (квадратное), а его максимальная ширина не превышает 800 пикселей:

<?php namespace AppHttpControllers; use IlluminateHttpRequest; use IlluminateSupportFacadesValidator; use IlluminateValidationRule; class ProductController extends Controller { public function store(Request $request) { $validator = Validator::make($request->all(), [ 'product_image' => [ 'required', 'image', Rule::dimensions([ 'ratio' => 1, 'max_width' => 800, ]), ], ]); if ($validator->fails()) { $errors = $validator->errors(); echo "Validation errors: " . json_encode($errors->all()); return; } echo "Product image validated successfully"; } } ?>

Результат выполнения кода при успешной валидации:

"Product image validated successfully"

Пример

Давайте используем правило в классе FormRequest для проверки загружаемого баннера с ограничениями по минимальным и максимальным размерам:

<?php namespace AppHttpRequests; use IlluminateFoundationHttpFormRequest; use IlluminateValidationRule; class BannerRequest extends FormRequest { public function authorize() { return true; } public function rules() { return [ 'banner' => [ 'required', 'image', Rule::dimensions([ 'min_width' => 600, 'min_height' => 200, 'max_width' => 1200, 'max_height' => 400, ]), ], ]; } } ?>

Смотрите также

  • правило image,
    которое проверяет, что файл является изображением
  • правило file,
    которое проверяет, что поле содержит загруженный файл
  • правило mimes,
    которое проверяет MIME-тип загружаемого файла
  • правило mimetypes,
    которое проверяет MIME-тип файла по его расширению
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить