> For the complete documentation index, see [llms.txt](https://delphinpro.gitbook.io/voyager-ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://delphinpro.gitbook.io/voyager-ru/bread/introduction.md).

# Введение

При добавлении или редактировании текущего BREAD для таблицы базы данных вы сначала увидите информацию BREAD, которая позволяет вам установить Display Names, slug, icon, `Model` и Controller Namespace, Policy Name. Вы также можете выбрать, нужно ли сгенерировать разрешения для этого типа BREAD.

![](https://4207191994-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-ME4uRidwjaTsJKATeNg%2Fsync%2Fefe76521cfd43c481ac902ee1bda6bf927bb2e30.png?generation=1596753428095577\&alt=media)

При прокрутке вниз вы увидите каждую строку, которая связана с этой таблицей, где вы можете выбрать, где в ваших представлениях вы хотите видеть каждое из этих полей:

* BROWSE (field will show up when you browse the current data)
* READ (field will show when you click to view the current data)
* EDIT (field will be visible and allow you to edit the data)
* ADD (field will be visible when you choose to create a new data type)
* DELETE (doesn't pertain to delete so this can be checked or unchecked)

![](https://4207191994-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-ME4uRidwjaTsJKATeNg%2Fsync%2F190020ff6aba4dc631bad1a3a8ff7e3270267317.png?generation=1596753426141131\&alt=media)

Вы также можете указать, какой тип формы вы хотите использовать для каждого поля. Это могут быть TextBox, TextArea, Checkbox, Image и другие типы элементов формы.

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

## Валидация

Внутри секции *Optional Details* для каждой строки в вашем BREAD вы также можете указать правила проверки с помощью простого JSON. Вот пример того, как добавить правило проверки для *required* и *max length 12*.

```php
{
    "validation": {
        "rule": "required|max:12"
    }
}
```

Кроме того, вы можете добавить некоторые пользовательские сообщения об ошибках, которые могут быть выполнены таким образом:

```php
{
    "validation": {
        "rule": "required|max:12",
        "messages": {
            "required": "This :attribute field is a must.",
            "max": "This :attribute field maximum :max."
        }
    }
}
```

Вы также можете определить несколько правил следующим образом:

```php
{
    "validation": {
        "rule": [
            "required",
            "max:12"
        ]
    }
}
```

### Правила для действий

Вы можете определить отдельные правила проверки для редактирования и добавления:

```
{
    "validation": {
        "rule": "min:3",
        "edit": {
            "rule": "nullable"
        },
        "add": {
            "rule": "required"
        }
    }
}
```

Вы можете найти список всех доступных правил валидации в [документации Laravel](https://laravel.com/docs/validation#available-validation-rules).

## Теггирование

Тегирование дает возможность добавлять новые элементы в отношения Belongs-To-Many непосредственно при редактировании или добавлении BREAD.

Чтобы активировать эту функцию, вам просто нужно включить `Tagging` в деталях отношений

![](https://4207191994-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-ME4uRidwjaTsJKATeNg%2Fsync%2F297d3c4afa30b71da03db6a17c59ad8953c04755.jpg?generation=1596753429032735\&alt=media)

После этого можно ввести свободный текст в select и нажать клавишу Enter, чтобы сохранить новые отношения.

{% hint style="info" %}
**Будьте внимательны:**

В нем хранится только `display-column`, поэтому вы должны убедиться, что все остальные поля либо недействительны, либо имеют значение по умолчанию.
{% endhint %}

## Порядок элементов Bread

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

![](https://4207191994-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-ME4uRidwjaTsJKATeNg%2Fsync%2Ff3facbd99090182ed689c7257067a8a467b28fdd.png?generation=1596753430131146\&alt=media)

**Order column** это поле в таблице, где счет хранится как целое число.\
**Order display column** это поле, которое отображается в списке перетаскивания.\
**Order direction** the direction in which the field is ordered.

После этого вы можете перейти на вашу BREAD-страницу просмотра и вы увидите кнопку **Order.**\
Нажав на эту кнопку, вы перейдете на страницу, где вы можете переупорядочить ваши элементы:

![](https://4207191994-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-ME4uRidwjaTsJKATeNg%2Fsync%2Fd80ceb782c401b68b8ebc08a15f55f96f307731f.png?generation=1596753425171362\&alt=media)

## Scope browse-results

Если вы хотите отфильтровать результаты просмотра для BREAD, то вы можете сделать это, создав a [Scope](https://laravel.com/docs/eloquent#local-scopes) в ввашей модели. Например, если вы хотите показывать только те сообщения, которые были созданы текущим пользователем, определите Scope следующим образом:

```php
<?php
public function scopeCurrentUser($query)
{
    return $query->where('author_id', Auth::user()->id);
}
```

Далее перейдите к BREAD-настройкам для `posts`, найдите вход `Scope` и выберите `currentUser`:

![](https://4207191994-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-ME4uRidwjaTsJKATeNg%2Fsync%2F0fe004091e0629d341e18f450c91899ece1e8518.jpg?generation=1596753427136756\&alt=media)

После нажатия кнопки "Отправить" вы увидите только свои собственные посты.
