问题描述
此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时,我得到了这个错误。