Проблема с морфингом Laravel Nova

Первоначальный разработчик этого приложения 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;
}

person Xia    schedule 27.09.2020    source источник


Ответы (1)


Я получил эту ошибку, когда, когда отношение в модели Laravel (не-Nova базового приложения) было установлено на morphMany, и изменение этого отношения на morphOne также исправило его.

person Mitch    schedule 30.10.2020