Скринкасты
Поля в MoonShine, в большинстве случаев, относятся к полям таблицы из базы данных.
В рамках CRUD
они будут выводиться на главной странице раздела (ресурса) со списком и на странице создания и редактирования записей.
В MoonShine существует множество видов полей, которые покрывают все возможные требования!
Также они охватывают и все возможные связи в Laravel и для удобства называются так же, как и методы отношений
BelongsTo
, BelongsToMany
, HasOne
, HasMany
, HasOneThrough
, HasManyThrough
, MorphOne
, MorphMany
.
Добавлять поля в ModelResource
очень просто!
Для этого можно воспользоваться методами которые позволяют объявить поля для соответствующих страниц: indexFields()
, formFields()
или detailFields()
.
namespace App\MoonShine\Resources;use MoonShine\Laravel\Resources\ModelResource;use MoonShine\UI\Components\Layout\Box;use MoonShine\UI\Fields\ID;use MoonShine\UI\Fields\Text;class PostResource extends ModelResource{// ...protected function indexFields(): iterable{return [ID::make(),Text::make('Title'),];}protected function formFields(): iterable{return [Box::make([ID::make(),Text::make('Title'),Text::make('Subtitle'),]),];}protected function detailFields(): iterable{return [Text::make('Title', 'title'),Text::make('Subtitle'),];}}
namespace App\MoonShine\Resources;use MoonShine\Laravel\Resources\ModelResource;use MoonShine\UI\Components\Layout\Box;use MoonShine\UI\Fields\ID;use MoonShine\UI\Fields\Text;class PostResource extends ModelResource{// ...protected function indexFields(): iterable{return [ID::make(),Text::make('Title'),];}protected function formFields(): iterable{return [Box::make([ID::make(),Text::make('Title'),Text::make('Subtitle'),]),];}protected function detailFields(): iterable{return [Text::make('Title', 'title'),Text::make('Subtitle'),];}}