Поля

MorphTo

Наследует BelongsTo.

* имеет те же возможности.

Поле отношения в Laravel типа MorphTo.

use MoonShine\Laravel\Fields\Relationships\MorphTo;
 
MorphTo::make('Commentable')->types([
Article::class => 'title'
])
use MoonShine\Laravel\Fields\Relationships\MorphTo;
 
MorphTo::make('Commentable')->types([
Article::class => 'title'
])

morph_to morph_to_dark

Требуется метод types(), указывающий доступные классы.

Описание значения метода types:

  • Ключ - class-string<Model>
  • Значение - строка или массив.

Если значение передаётся как строка, то она должна указывать на название поля, которое нужно отобразить. Если же передаётся как массив, то первый элемент массива — это название поля для отображения, а второй — имя отношения вместо названия модели.

use MoonShine\Fields\Relationships\MorphTo;
 
MorphTo::make('Imageable')->types([
Company::class => ['short_name', 'Organization']
])
use MoonShine\Fields\Relationships\MorphTo;
 
MorphTo::make('Imageable')->types([
Company::class => ['short_name', 'Organization']
])

morph_to_array morph_to_array_dark

При использовании поля в сторонних ресурсах обязательно указывайте resource, иначе будет использоваться ресурс из запроса, что может привести к ошибкам.

MorphTo::make('Commentable', resource: PolyCommentResource::class)->types([
Post::class => 'name',
Project::class => 'name',
])
MorphTo::make('Commentable', resource: PolyCommentResource::class)->types([
Post::class => 'name',
Project::class => 'name',
])