# Основы
Поля в большинстве случаев относятся к полям таблицы из базы данных. В рамках CRUD будут выводиться
на главной странице раздела (ресурса) со списком и на странице создания и редактирования записей.
В административной панели MoonShine существует множество видов полей, которые покрывают все возможные требования!
Также охватывают и все возможные связи в Laravel и для удобства называются так же, как и методы отношений
BelongsTo
, BelongsToMany
, HasOne
, HasMany
,
HasOneThrough
, HasManyThrough
, MorphOne
, MorphMany
.
Добавлять поля в ModelResource очень просто!
# По умолчанию
В ModelResource по умолчанию необходимо в методе fields()
вернуть массив со всеми
Полями
.
namespace App\MoonShine\Resources; use App\Models\Post;use MoonShine\Fields\ID; use MoonShine\Fields\Text; use MoonShine\Resources\ModelResource; class PostResource extends ModelResource{ protected string $model = Post::class; protected string $title = 'Posts'; //... public function fields(): array { return [ ID::make(), Text::make('Title'), ]; } //...}
![](http://moonshine-laravel.com/screenshots/form.png)
# Разделение полей
Иногда возникает потребность исключить или поменять порядок некоторых полей в индексной или детальной странице.
Для этого можно воспользоваться методами которые позволяют переопределить поля для соответствующих страниц:
indexFields()
, formFields()
или detailFields()
.
namespace App\MoonShine\Resources; use App\Models\Post;use MoonShine\Fields\ID; use MoonShine\Fields\Text; use MoonShine\Resources\ModelResource; class PostResource extends ModelResource{ protected string $model = Post::class; protected string $title = 'Posts'; //... public function indexFields(): array { return [ ID::make(), Text::make('Title'), ]; } public function formFields(): array { return [ ID::make(), Text::make('Title'), Text::make('Subtitle'), ]; } public function detailFields(): array { return [ Text::make('Title', 'title'), Text::make('Subtitle'), ]; } //...}