Как я могу вставить несколько строк в базу данных в Laravel - PullRequest
0 голосов
/ 09 мая 2019

Я попытался сохранить несколько строк в базе данных одним запросом, но безуспешно.Я использовал цикл for, но он не может получить значение входных данных, сгенерированных с помощью jQuery после установки количества строк.

Контроллер

public function store(Request $request)
{
    $nbrrowsol = $request->get('nbrrowsol');
    for ($i = 1; $i < $nbrrowsol; $i++) {
        $commande = new Commande();
        $commande->nom_client = $request->get('nomclient');
        $commande->organisme = $request->get('organisme');
        $commande->adresse = $request->get('adresse');
        $commande->email = $request->get('email');
        $commande->tel1 = $request->get('tel');
        $commande->tel2 = $request->get('tel2');
        $commande->fax = $request->get('fax');
        $commande->commercial = $request->get('commercial');
        $commande->date_reception = $request->get('datereception');
        $commande->date_prelevement = $request->get('dateprelev');
        $commande->saved_by = $request->get('savedby');
        $commande->code = $request->get('codesol' + $i);
        $commande->nature = $request->get('naturesol' + $i);
        $commande->reference_cli = $request->get('reference_clisol' + $i);
        $commande->profondeur = $request->get('profondeursol' + $i);
        $commande->culture = $request->get('culturesol' + $i);
        $commande->variete = $request->get('varietesol' + $i);
        $commande->gps = $request->get('gpssol' + $i);
        $commande->analyse_demande = $request->get('analysedemandesol' + $i);
        $commande->valide = $request->get('checkvalidee');
        $commande->save();
    }

    return redirect('gestion_commandes/create');
}

Я получаю следующую ошибку после того, как пользователь отправляет данные для сохранения.

Обнаружено нечисловое значение

Я думаю, что я не использовал (для) правильно илиформа:

$commande->code = $request->get('codesol' + $i);

Error image

Ответы [ 2 ]

1 голос
/ 09 мая 2019

enter image description here

Похоже, вы выбираете ввод с помощью оператора добавления +, который предназначен для javascript, в PHP оператор . используется для конкатенации, также вам нужно будет получить входные данные, используя, например, индекс массива input. когда ваш <input name="nomClient[]">

$request->get('nomclient['. $i . ']')

0 голосов
/ 09 мая 2019

Прежде всего для конкатенации строки в PHP используется нотация . (точка), а не +.Таким образом, этот 'codesol'+$i должен стать 'codesol' . $i и т. Д. Для остальных.

Если вы хотите вставить несколько строк напрямую, взгляните на этот пример.

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