【发布时间】:2021-05-10 18:31:50
【问题描述】:
我正在尝试保存数据但收到此错误:
Illuminate\Database\Eloquent\Relations\HasOneOrMany::save(): 参数 #1 ($model) 必须是 Illuminate\Database\Eloquent\Model 类型,给定数组,在 C:\xampp\laravelprojects\testfrihand 中调用\app\Http\Controllers\ProfileController.php 第 52 行
这是保存数据的函数:
public function updateprofile(Request $request, Profile $about){
auth()->user()->profile()->save([
'about'=>$request->about,
]);
用户模型:
public function profile(){
return $this->hasOne(\App\Models\Profile::class);
}
我不确定错误是否在模型中。我认为这是因为它提到了关系。但是我在这里不知所措,因为如果我更改以创建它,由于某种原因它可以正常工作
【问题讨论】:
-
欢迎来到 SO ... 如果您想通过关系“创建”新记录并传递属性,您正在寻找
create方法,而不是save... 如果您是尝试更新此相关记录,您可以使用update但这取决于您是想使用 eloquent 还是绕过它来进行更新 -
但我不想创建。这是针对用户配置文件的,因此他将插入只能更新而不是再次创建的数据
-
只有在我创建了数据时更新才有效。据我了解,我需要使用 save
-
如果您没有创建记录,那么您不是在“更新”您正在创建的记录
-
我需要创建,但是用户不能创建很多abouts。我英语不好,我正在尽力解释。如果您登录您的帐户,您将有一个 about 字段。你写自己,这将被发送到数据库,如果他写在同一个领域,它将被更新而不是再次创建