php - 传递给 Illuminate\Database\Eloquent\Relations\HasOneOrMany::save() 的参数 1 必须是 Illuminate\Database\Eloquent\Model 的实例,
问题描述
尝试save one-to-one relationship
在Expense
and之间ExpenseCategory
出现错误,如上
传递给 Illuminate\Database\Eloquent\Relations\HasOneOrMany::save() 的参数 1 必须是 Illuminate\Database\Eloquent\Model 的实例,给定 null,在 /home/z3r0/Desktop/Kiyoi/laravel-kiyoi/app 中调用/Http/Controllers/V1/ExpenseController.php 第 88 行
我尝试google
了一切,但仍然没有运气。
费用模型
public function expense_category()
{
return $this->hasOne(\App\ExpenseCategory::class);
}
在费用类别模型中
protected $fillable = ['expense_id', 'code', 'name', 'description'];
public function expense()
{
return $this->belongsTo(\App\Expense::class, 'expense_id');
}
在费用控制器中
public function update(Request $request, $id)
{
$request->validate([
'date' => 'required',
'amount' => 'required',
]);
$expense = Expense::findOrFail($id);
$expense->user_id = auth()->user()->id;
$expense->date = $request->date;
$expense->description = $request->description;
$expense->amount = $request->amount;
$expense->expense_for = $request->expense_for;
$expense->save();
$expense_category = \App\ExpenseCategory::findOrFail($id);
$expense_category->name = $request->name;
$expense->expense_category()->save($request->expense_category);
return response()->json([
'updated' => true,
]);
}
我会感谢你所有的帮助..谢谢...
解决方案
你有一个错字。您正在传入$request->expense_category
该save()
方法,但您打算传入$expense_category
.
改变
$expense->expense_category()->save($request->expense_category);
至
$expense->expense_category()->save($expense_category);
推荐阅读
- python - 从函数中删除嵌套 for 循环的指南
- java - ..RoleService 中构造函数的参数 0 需要一个名为“entityManagerFactory”的 bean,但无法找到
- r - 如何在 R 中修复我的 GLM 的 Hosmer-Lemeshow 错误
- javascript - 从 devtools 控制台的匿名 Javascript 函数中读取变量
- python - 计算和显示 ConvexHull
- queue - ActiveMQ Artemis 可以向 STOMP 客户端播放未传递的消息吗?
- html - 如何对齐中心
- 标签?
- amazon-web-services - 为什么从 WebServer01 到 DBServer 的 ping 超时?
- c++ - C++ unordered_map emplace 使用引用作为键
- c# - 如何更改 Swagger 默认 URL 并使用自定义 URL?