laravel - 我正在尝试更新数据,但使用 laravel 时出错
问题描述
我正在尝试通过外键更新数据,但不幸的是我收到错误请帮助我如何解决这个问题,谢谢。
请检查错误。
方法 Illuminate\Database\Eloquent\Collection::Save 不存在。
控制器
public function update(Request $request, Variation $variation)
{
$request->validate([
'name' => "required|max:191|unique:App\Variation,name,{$variation->id}",
'variation_details' => 'required'
]);
$variation->name = $request->name;
$variation->save();
$input = $request->except('_token');
$variationDetails = VariationDetails::where('variation_id', $variation->id)
->get();
// return $variationDetails;
if ($request->variation_details) {
foreach ($request->variation_details as $value) {
$variationDetails->variation_id = $variation->id;
$variationDetails->name = $value;
$variationDetails->Save();
}
}
// form helpers.php
logAction($request);
return redirect()->route('variation');
}
返回 $request->all()
{
"_token": "90jUMkvPgYOz64iT4zma1D2Ydkfp2sDodZ2c9Sno",
"_method": "put",
"name": "Storagefgfdgfdgdfg",
"variation_details": [
"32gb",
"16gb",
"32gb",
"32gb",
"32gb",
"32gb",
"32gb",
"32gb"
]
}
解决方案
您更新数据的代码看起来不正确。
理想情况下应该是。
$var = VariationDetails::where('variation_id', $variation->id);
$var->name = $request->name;
$var->save();
希望这会有用。
推荐阅读
- asp.net-mvc - 如何从 MVC 控制器认证到单独的 Web Api 项目
- angular - 我收到错误 TS2345:X 类型的参数不可分配给 Y 类型的参数
- java - 非法启动表达式2
- rest - 多授权用户的混合内容加密(FE 和 BE)
- c# - Directory.SetCurrentDirectory() 中不支持 URI 格式化程序
- javafx - 如何在 Javafx 中为 tabpane 设置选项卡?
- sql - 每个员工每天的第一个和最后一个条目
- vba - 时间和日期字段的查询条件分别超过午夜
- c# - 检测iPad的屏幕何时关闭或Unity中的Home按钮被按下事件?
- scala - Spark:读取表并按分区过滤