Несколько делений на основе выбранного числа (LARAVEL) - PullRequest
1 голос
/ 30 июня 2019

У меня проблема с моим кодом.Согласно другому сообщению: ( Создание нескольких делений на основе числа, выбранного в выпадающем меню ) Я взял некоторые идеи для своего кода, но у меня есть проблема.Я хочу вставить в свою базу данных все входы от созданных div, но он записывает только входы последнего div.Это мой контроллер настройки:

$generals= new Instance;

$generalsnames=implode("",$_POST['generalname']);

$generalstime=implode("",$_POST['generaltime']);

$generals->Name= $generalsnames;

$generals->Time= $generaltime;

$generals->save();

Можете ли вы помочь мне?Спасибо за совет

Ответы [ 3 ]

0 голосов
/ 01 июля 2019

как сказал @rkg, вам нужно [] в вашем блейде, тогда на вашем контроллере это будет ваш код.

$input = $request->all();
for($i=0; $i<count($input['generalname']); $i++)
{
    $generals= new Instance;
    $generals->Name= $input['generalname'][$i];
    $generals->Time= $input['generaltime'][$i];
    $generals->save();
}
0 голосов
/ 01 июля 2019

Я получил это работает.

Я смешал решения по @Jovs и @rkg.После нескольких твиков и перезапуска сервера я заработал.Последующие шаги:

  • Добавлен [] в теги имен, в blade.php
  • В контроллере я поместил код @Jovs (в выражении for вы пропустили"'")
$input = $request->all();
for($i=0; $i<count($input['generalname']); $i++){
   $generals= new Instance;
   $generals->Name= $input['generalname'][$i];
   $generals->Time= $input['generaltime'][$i];
   $generals->save();
}

У меня возникла проблема "Массив в преобразование строк".Я действительно ничего не трогал.Я только что перезапустил сервер, но позже он заработал.

0 голосов
/ 01 июля 2019

В вашем HTML (блейд-коде) добавьте «[]» в названия полей.Таким образом, ваши имена полей должны быть следующими:

<input type="text" name="generalname[]">
<input type="text" name="generaltime[]">

вместо

<input type="text" name="generalname">
<input type="text" name="generaltime">

, потому что только последнее значение добавленных div с такими именами будет включено в ваш запрос POST к вашему маршрутуесли вы не указали массив для имен ваших полей.

Тогда в вашем контроллере:

public function store(Request $request)
{
   $input = $request->all();
   //you might want to combine your arrays for easier saving
   $general_time = array_combine($input['generalname'], $input['generaltime']);

   //then you will use foreach statement to save all of your data
   foreach($general_time as $general => $time)
   {
      $generals = new Instance;
      $generals->Name = $general;
      $generals->Time = $time
      $generals->save();
   }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...