Skip to content

Commit

Permalink
Update field.md
Browse files Browse the repository at this point in the history
  • Loading branch information
tabuna authored Nov 23, 2024
1 parent 45f7f5a commit baf01d8
Showing 1 changed file with 137 additions and 3 deletions.
140 changes: 137 additions & 3 deletions docs/ru/docs/field.md
Original file line number Diff line number Diff line change
Expand Up @@ -655,7 +655,7 @@ Code::make('code')
->lineNumbers();
```


<!--
## Picture
Позволяет загружать изображение.
Expand All @@ -682,7 +682,7 @@ Picture::make('picture')
```
Передаваемая строка представляет собой список [уникальных спецификаторов типов файлов](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers), разделённый запятыми.

-->

## Cropper

Expand Down Expand Up @@ -763,6 +763,140 @@ Cropper::make('picture')



## Attach

Поле обеспечивает интуитивно понятный интерфейс для загрузки изображений и файлов, включая поддержку группировки и сортировки.

Для создания элемента загрузки файла используйте метод `make` класса `Attach`, указав имя поля:

```php
use Orchid\Screen\Fields\Attach;

Attach::make('attachments');
```

Чтобы разрешить множественную загрузку файлов, используйте метод `multiple()`:

```php
Attach::make('attachments')
->multiple();
```


### Ограничение загружаемых файлов

Для множественной загрузки с помощью метода `maxCount` можно задать максимальное количество файлов доступных для загрузки:

```php
Attach::make('attachments')
->multiple()
->maxCount(3); // 3 файла
```

Также можно ограничить размер файлов с помощью метода `maxSize()`. Размер указывается в мегабайтах (MB):

```php
Attach::make('attachments')
->maxSize(1024); // Размер в MB
```

> **Максимальный размер загружаемого файла:**
> По умолчанию значения `upload_max_filesize` и `post_max_size` равны 2M. Вы можете изменить эти параметры в `php.ini`, чтобы установить максимальный размер файлов больше 2M.
## Поддерживаемые типы файлов

По умолчанию метод `accept` проверяет тип или расширение MIME файла и сравнивает его с указанным списком. Это список MIME типов или расширений файлов, разделённых запятой.

```php
Attach::make('upload')
->accept('image/*,application/pdf,.psd');
```

Передаваемая строка представляет собой список [уникальных спецификаторов типов файлов](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers), разделённый запятыми.


### Группировка файлов

Вы можете группировать файлы по различным категориям с помощью метода `group`.
Это особенно полезно, если нужно загружать разные типы файлов, такие как документы и изображения.

```php
Attach::make('docs')
->group('documents');

Attach::make('images')
->group('photo');
```

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

```php
use Orchid\Attachment\Models\Attachment;

// Один к одному (с внешним идентификатором)
public function hero()
{
return $this->hasOne(Attachment::class, 'id', 'hero')->withDefault();
}

// Многие ко многим (без внешнего идентификатора в таблице, необходимо загружать через функцию group())
public function documents()
{
return $this->attachments('documents');
}
```

### Работа с хранилищами файлов

Поле загрузки может работать с различными репозиториями. Для этого укажите ключ репозитория, указанный в `config/filesystems.php`:

```php
Attach::make('upload')
->storage('s3');
```

По умолчанию используется хранилище `public`.

### Явная настройка пути к файлам

Если вам нужно игнорировать стандартные правила хранения файлов и явно указать путь для загрузки, используйте метод `path`:

```php
Attach::make('upload')
->path('/custom/path');
```

### Валидация и сортировка файлов на сервере

Важно валидировать файлы и на серверной стороне. Например, проверить, что файл является изображением с определённым соотношением сторон или соответствующим типом. Для этого используйте метод `uploadUrl`, чтобы указать endpoint для загрузки файлов:

```php
Attach::make('upload')
->uploadUrl(route('my.upload.endpoint'));
```

Точно так же можно указать endpoint для сортировки файлов:

```php
Attach::make('upload')
->sortUrl(route('my.sort.endpoint'));
```

## Обработка ошибок и вывод сообщений

Для того чтобы пользователи не сталкивались с неясными ошибками, важно предоставить чёткие и информативные сообщения об ошибках. Используйте методы `errorMaxSizeMessage` и `errorTypeMessage`, чтобы указать собственные сообщения:

```php
Attach::make('upload')
->errorMaxSizeMessage("Размер файла слишком большой")
->errorTypeMessage("Неверный тип файла");
```





<!--
## Upload
Поле обеспечивает интуитивно понятный интерфейс для загрузки изображений и файлов, включая поддержку группировки и обработки различных типов файлов.
Expand Down Expand Up @@ -849,7 +983,7 @@ Upload::make('upload')
```
Добавится новая кнопка с модальным окном для предварительного просмотра загруженных файлов.

-->

## Group

Expand Down

0 comments on commit baf01d8

Please sign in to comment.