Php 在laravel中保存表行中的数据

Php 在laravel中保存表行中的数据,php,laravel,laravel-5.5,laravel-5.6,Php,Laravel,Laravel 5.5,Laravel 5.6,我在一个页面中有多个同名的输入字段,当我试图保存时,我抛出了一个错误。我应该如何将多个表行数据中的数据保存到数据库中。 错误 从上的空值创建默认对象 此处$varientaccesss->variant\u id=$request->input('varient') 控制器 public function storevarient_update(Request $request) { //return $request; $varientprice = new Pric

我在一个页面中有多个同名的输入字段,当我试图保存时,我抛出了一个错误。我应该如何将多个表行数据中的数据保存到数据库中。 错误 从上的空值创建默认对象 此处$varientaccesss->variant\u 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)

你可以这样保存

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

这样做的目的是初始化一个新数据,您很快就会将其保存到数据库中

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

}

我已经这样做了,但数据库中只存储了表行中的一个数据,这就是我尝试循环它的原因。我需要将表行中的数据存储到varient@Shaielndra gupta您可以共享
dd($request->all())
screen shot我在问题中更新了检查它。我的dd@Shaielndra Gupta的屏幕截图让我试试@Shaielndra GuptaBoom它成功了,非常感谢@Shaielndra Guptaput
$varientaccess=new Categoryvariantmapping()
$varientaccess->save()
inside foreach它将只保存一次,因为您在循环外部初始化它。我不太明白这一点。。我尝试包含save()但不起作用@初学者尝试放置一个
if($varientaccess->save()){echo'success';}
来确定其他数据是否已成功保存@初学者