Добавление данных массива в таблицу, вставка только одной строки в базу данных в laravel - PullRequest
0 голосов
/ 06 декабря 2018

Я передаю строковые значения с одной переменной из ajax и хочу вставить эту строку в другую строку с циклом in for. Сейчас вставляется только одна строка с массивом с индексом 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 голосов
/ 06 декабря 2018

Попробуйте это.

      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);
        }
0 голосов
/ 06 декабря 2018

Попробуйте сделать это с помощью счетчика ($ 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);

}

Надеюсь, это поможет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...