当我尝试保存时,页面中有多个具有相同名称的输入字段,但会引发错误。我该如何将多个表行数据中的数据保存到数据库中。 错误 从空值创建默认对象 这里$ varientaccesss-> variant_id = $ request-> input('varient'),
控制器
public function storevarient_update(Request $request)
{
//return $request;
$varientprice = new Price();
$varientprice->variant_id = $request->input('varient');
$varientprice->discount = $request->input('discount');
$varientprice->price = $request->input('vehicleprice');
$varientprice->save();
$varientaccess = new Categoryvariantmapping();
foreach ($varientaccess as $varientaccesss){
$varientaccesss->variant_id = $request->input('varient');
$varientaccesss->cat_id = $request->input('test');
$varientaccesss->rate = $request->input('cat_price');
$varientaccesss->status = '0';
$varientaccess->save();
}
return redirect('Varientupdate')->with('success', 'Details Added Successfully');
}
dd($ request-> all);
答案 0 :(得分:1)
您可以这样保存
public function storevarient_update(Request $request)
{
//return $request;
$varientprice = new Price();
$varientprice->variant_id = $request->input('varient');
$varientprice->discount = $request->input('discount');
$varientprice->price = $request->input('vehicleprice');
$varientprice->save();
$cat_id = $request->input('cat_price');
$test_ids = $request->input('test');
foreach($test_ids as $key => $test)
{
$varientaccesss = new Categoryvariantmapping();
$varientaccesss = new Categoryvariantmapping();
$varientaccesss->variant_id = $request->input('varient'),
$varientaccesss->cat_id = $test,
$varientaccesss->rate = $cat_id[$key],
$varientaccesss->status = '0',
$varientaccess->save();
}
return redirect('Varientupdate')->with('success', 'Details Added Successfully');
}
答案 1 :(得分:-1)
这样做的目的是初始化一个新数据,您将很快将其保存在数据库中
$varientaccess = new Categoryvariantmapping();
但是你把它放在循环之外
$varientaccess = new Categoryvariantmapping();
foreach(....)
这意味着无论在foreach中有多少行它只会保存一次,因为您不会再次初始化
所以解决方案是将其放入循环
foreach(....) {
$varientaccess = new Categoryvariantmapping();
$varientaccesss->variant_id = $request->input('varient');
$varientaccesss->cat_id = $request->input('test');
$varientaccesss->rate = $request->input('cat_price');
$varientaccesss->status = '0';
$varientaccess->save();
}