【发布时间】:2021-02-19 02:55:25
【问题描述】:
我试图用相同的外键批量更新记录。但是我遇到了一个问题。如果我使用
$products = $products::findorfail($prod_id);
它设法更新单个列。然后当我尝试使用
$products = $products::query()->where('product_id', $prod_id)->get();
遇到"Method Illuminate\\Database\\Eloquent\\Collection::options does not exist.",怎么解决这个问题。
这是我当前的代码
public function update(array $data = [], $prod_id, Variation $products)
{
foreach ($data['variants'] as $product) {
$products = $products::query()->where('product_id', $prod_id)->get();
$products->options()->detach(($product['option_id']));
$products->options()->attach(($product['option_id']));
$products->fill(Arr::set($data, 'product_id', $prod_id));
$products->fill(Arr::only($product, $products->getFillable()));
}
return $products->save();
}
提前致谢。
【问题讨论】: