Первоначальный разработчик этого приложения Laravel ушел, и теперь мне передали задачу. Админ создан в Nova, о чем я понятия не имею. У нас есть ресурс User.php, который может иметь изображение в виде аватара. Разработчик использует изображения сводной таблицы и использовал MorphOne :: make ('image'), но выдает ошибку. Связь HasOne уже заполнена, но в БД в таблице изображений нет связи изображений.
Когда я меняю MorphOne на MorphMany, изображение сохраняется, но можно загружать и многие изображения. Я новичок в этом и редко нахожу полезный ресурс для решения этой проблемы. Сообщите мне, что я пропустил, чтобы отследить эту проблему.
User.php
public function fields(Request $request)
{
return [
ID::make()->sortable(),
Text::make('Name')
->sortable()
->rules('required', 'max:255'),
Text::make('Email')
->sortable()
->rules('required', 'email', 'max:254')
->creationRules('unique:users,email')
->updateRules('unique:users,email,{{resourceId}}'),
Password::make('Password')
->onlyOnForms()
->creationRules('required', 'string', 'min:8')
->updateRules('nullable', 'string', 'min:8'),
Boolean::make('Verified By Email'),
DateTime::make('Created At')->format('LLLL')->hideFromIndex(),
BelongsToMany::make('Roles'),
BelongsToMany::make('Permissions'),
MorphOne::make('image'),
MorphOne::make('Location'),
HasMany::make('LogActivity','logs')
];
}
Image.php
public function fields(Request $request)
{
$fields = [
ID::make()->sortable(),
\Laravel\Nova\Fields\Image::make('Src')
->rules('required')
->disk('images')
->prunable(),
MorphTo::make('Image')->types([
Song::class,
Post::class,
User::class,
Event::class,
Competition::class,
])
];
return $fields;
}