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

Правило image

Правило image используется в методе rules компонента Livewire для валидации загружаемых файлов. Оно проверяет, что файл является допустимым изображением (JPEG, PNG, GIF, BMP, SVG или WebP). Правило можно комбинировать с другими правилами валидации, такими как max, mimes или required.

Синтаксис

use Livewire\WithFileUploads; public function rules() { return [ 'photo' => 'image', ]; }

Пример

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

<?php namespace App\Livewire; use Livewire\Component; use Livewire\WithFileUploads; class AvatarUpload extends Component { use WithFileUploads; public $avatar; public function rules() { return [ 'avatar' => 'image', ]; } public function updated($property) { if ($property === 'avatar') { $this->validateOnly($property); } } public function render() { return view('livewire.avatar-upload'); } } ?>
<div> <form wire:submit.prevent> <input type="file" wire:model="avatar"> @error('avatar') <span style="color: red;">{{ $message }}</span> @enderror </form> </div>

Результат выполнения кода:

<div> <form> <input type="file"> </form> </div>

Пример

Давайте добавим ограничение на размер изображения и тип файла:

<?php namespace App\Livewire; use Livewire\Component; use Livewire\WithFileUploads; class AvatarUpload extends Component { use WithFileUploads; public $avatar; public function rules() { return [ 'avatar' => 'image|max:2048|mimes:jpeg,png', ]; } public function updated($property) { if ($property === 'avatar') { $this->validateOnly($property); } } public function render() { return view('livewire.avatar-upload'); } } ?>

Пример

Давайте сохраним изображение после успешной валидации:

<?php namespace App\Livewire; use Livewire\Component; use Livewire\WithFileUploads; class AvatarUpload extends Component { use WithFileUploads; public $avatar; public $success = false; public function rules() { return [ 'avatar' => 'image|max:2048', ]; } public function upload() { $this->validate(); $path = $this->avatar->store('avatars', 'public'); $this->success = true; } public function render() { return view('livewire.avatar-upload'); } } ?>
<div> <form wire:submit.prevent="upload"> <input type="file" wire:model="avatar"> @error('avatar') <span style="color: red;">{{ $message }}</span> @enderror <button type="submit">Upload</button> @if ($success) <p>Uploaded successfully!</p> @endif </form> </div>

Результат выполнения кода:

<div> <form> <input type="file"> <button type="submit">Upload</button> </form> </div>

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

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