首页 > 解决方案 > 我正在尝试更新数据,但使用 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"
]
}

标签: laravel

解决方案


您更新数据的代码看起来不正确。

理想情况下应该是。

$var = VariationDetails::where('variation_id', $variation->id);

$var->name = $request->name;
$var->save();

希望这会有用。


推荐阅读