在Laravel中保存表行中的数据

时间:2018-09-26 09:12:56

标签: php laravel laravel-5.5 laravel-5.6

当我尝试保存时,页面中有多个具有相同名称的输入字段,但会引发错误。我该如何将多个表行数据中的数据保存到数据库中。 错误 从空值创建默认对象 这里$ varientaccesss-> variant_id = $ request-> input('varient'),

Page i designed

控制器

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);

enter image description here

2 个答案:

答案 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();

}
相关问题