Laravel Nova Morphing问题

问题描述

此Laravel App的原始开发人员离开了,现在我已经完成了任务。管理员是在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','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;
}

解决方法

当Laravel(非Nova应用程序)模型上的关系设置为morphMany,并将该关系更改为morphOne时,我得到了这个错误。