在laravel中使用in表添加阵列数据仅在in数据库中插入单行

时间:2018-12-06 11:19:30

标签: jquery ajax laravel

我正在从ajax的一个变量中传递字符串值,并想通过in循环将该字符串插入到不同的行中,现在只有一行插入索引为1的数组。我首先将字符串转换为数组,并具有根据计数值进行计数以运行循环,但仅插入索引为1的单行。对于计数2,仅插入单行。

控制器代码:

public function addSlider(Request $request){
       $addbannerdata = new Banner;
       $noofslides = $request->slidercount;
        $slidername = explode(',',$request->allslidernames);
       $btntitle = explode(',',$request->allbuttontitle);
       $btnurl = explode(',',$request->allbuttonurl);

       //dd($request->all());
        for($i=0;$i<$noofslides;$i++){
         $addbannerdata->banner_title = $request->maintitle;
         $addbannerdata->page_id = $request->pageid;
         $addbannerdata->slider_title = $slidername[$i];
         var_dump($slidername[$i]);
         $addbannerdata->button_title = $btntitle[$i];  
          var_dump($btntitle[$i]);
         $addbannerdata->button_url = $btnurl[$i];
          var_dump($btntitle[$i]);
             $savebannerdata = $addbannerdata->save();
        }

    if($i>$noofslides)
        {
          $result['error'] = FALSE;
          $result['message'] = 'Banner Data  Added Successfully';
        }
      else
       {
          $result['error']  = TRUE;
          $result['message'] = 'Something Went Wrong Please Try Again Later!';
       }
     echo json_encode($result);
   }

2 个答案:

答案 0 :(得分:1)

尝试使用count($ slidername)代替for循环条件,然后将$ addbannerdata = new Banner();在循环内部,否则只会插入单个数据

public function addSlider(Request $request){
  $noofslides = $request->slidercount;
  $slidername = explode(',',$request->allslidernames);
  $btntitle = explode(',',$request->allbuttontitle);
  $btnurl = explode(',',$request->allbuttonurl);

  //dd($request->all());
  for($i=0;$i<count($slidername);$i++){
    $addbannerdata = new Banner();
    $addbannerdata->banner_title = $request->maintitle;
    $addbannerdata->page_id = $request->pageid;
    $addbannerdata->slider_title = $slidername[$i];
    var_dump($slidername[$i]);
    $addbannerdata->button_title = $btntitle[$i];  
    var_dump($btntitle[$i]);
    $addbannerdata->button_url = $btnurl[$i];
    var_dump($btntitle[$i]);
    $savebannerdata = $addbannerdata->save();
  }

  if($i>$noofslides){
    $result['error'] = FALSE;
    $result['message'] = 'Banner Data  Added Successfully';
  }
  else{
    $result['error']  = TRUE;
    $result['message'] = 'Something Went Wrong Please Try Again Later!';
  }

  echo json_encode($result);

}

希望这对您有帮助

答案 1 :(得分:0)

尝试一下。

      public function addSlider(Request $request){
            $addbannerdata = new Banner;
            $noofslides = $request->slidercount;
            $slidername = explode(',',$request->allslidernames);
            $btntitle = explode(',',$request->allbuttontitle);
            $btnurl = explode(',',$request->allbuttonurl);

            for($i=0;$i < count($noofslides);$i++){
                $addbannerdata->banner_title = $request->maintitle;
                $addbannerdata->page_id = $request->pageid;
                $addbannerdata->slider_title = $slidername[$i];
                $addbannerdata->button_title = $btntitle[$i];
                $addbannerdata->button_url = $btnurl[$i];
                $savebannerdata = $addbannerdata->save();
            }

            if($i > $noofslides)
            {
                $result['error'] = FALSE;
                $result['message'] = 'Banner Data  Added Successfully';
            }
            else
            {
                $result['error']  = TRUE;
                $result['message'] = 'Something Went Wrong Please Try Again Later!';
            }
            echo json_encode($result);
        }