我尝试使用动态变体更新我的产品。添加或删除时没有问题,但是当我尝试更新时,每次更新时都会显示每个字段的最后一条记录。
我试图更新我插入的动态变体...
关于动态表单字段,插入工作正常但是当我尝试更新它时,它会使用填充和第二个值同时更新第一个值,并且我赢了“t = t能够区分字段,因为Blade文件以数组的形式返回。
当我尝试使用任何值进行更新时,它会重复两个字段中的最后一个值,因此输出看起来像......
控制器
<?php
public function updateProducts($id, Request $request)
{
$featured = Input::has('featured') ? true : false;
$product = Product::findOrFail($id);
$product->update(array(
'product_name' => $request->input('product_name'),
'product_qty' => $request->input('product_qty'),
'product_sku' => $request->input('product_sku'),
'price' => $request->input('price'),
'reduced_price' => $request->input('reduced_price'),
'cat_id' => $request->input('cat_id'),
'brand_id' => $request->input('brand_id'),
'featured' => $featured,
'description' => $request->input('description'),
'product_spec' => $request->input('product_spec'),
));
$product->update($request->all());
$variants = VariantsOption::where('products_id', $id)->get();
$test = $request->all();
foreach ($variants as $v) {
$x = $v->id;
foreach ($test['variants_id'] as $key => $attrib) {
$var_name = $test['txt'][$key];
$varid = $attrib;
$variants = new VariantsOption;
$data = array(
'variants_id' => $varid,
'variants_name' => $var_name
);
$variants->where('id', '=', $x)->update($data);
}
}
return redirect('/admin/products/');
}
答案 0 :(得分:0)
在课堂上使用以下内容
use Illuminate\Database\Eloquent\ModelNotFoundException;
在函数中添加异常处理程序
// Will return a ModelNotFoundException if no user with that id
try
{
$product = Product::findOrFail($id);
}
// catch(Exception $e) catch any exception
catch(ModelNotFoundException $e)
{
dd(get_class_methods($e)) // lists all available methods for exception object
dd($e)
}
看起来没有找到$id
的产品,所以在更新时它会在数据库中添加新产品。