php - Pourquoi Laravel n'insère-t-il qu'une seule donnée à chaque fois?
阿神
阿神 2017-06-19 09:07:10
0
2
885

DB::beginTransaction(); Une fois activé, seule la première donnée peut être insérée à chaque fois, et le reste sera annulé.
Le code est le suivant :

try {
     DB::beginTransaction();
     foreach ($rightOrWrongRows as $row) {
     $question = array_combine($rightOrWrongHeader, $row);
     RightOrWrong::create([
         'question' => $question['question'],
         'answer' => $question['answer'],
         'scope' => $question['scope'],
         'degree' => 1,
         'exam_id' => $this->examId,
        ]);
     }
     DB::commit();
     } catch (\Exception $exception) {
        DB::rollBack();
        Log::info($exception->getMessage());
    }

Si vous clôturez la transaction, vous pouvez insérer plusieurs données

try {
     //DB::beginTransaction();
     foreach ($rightOrWrongRows as $row) {
     $question = array_combine($rightOrWrongHeader, $row);
     RightOrWrong::create([
         'question' => $question['question'],
         'answer' => $question['answer'],
         'scope' => $question['scope'],
         'degree' => 1,
         'exam_id' => $this->examId,
        ]);
     }
     //DB::commit();
     } catch (\Exception $exception) {
        //DB::rollBack();
        Log::info($exception->getMessage());
    }

S'il vous plaît, aidez-moi à résoudre ce problème, je suis un débutant.

阿神
阿神

闭关修行中......

répondre à tous(2)
習慣沉默

essayez

try {
     DB::beginTransaction();
     $data = [];
     foreach ($rightOrWrongRows as $row) {
         $question = array_combine($rightOrWrongHeader, $row);
         $data[] = [
             'question' => $question['question'],
             'answer' => $question['answer'],
             'scope' => $question['scope'],
             'degree' => 1,
             'exam_id' => $this->examId,
             'created_at' => date('Y-m-d H:i:s'),
             'updated_at' => date('Y-m-d H:i:s'),
            ]);
     }
     RightOrWrong::insert($data);
     DB::commit();
     } catch (\Exception $exception) {
        DB::rollBack();
        Log::info($exception->getMessage());
    }
世界只因有你

Message d'erreur, structure du tableau, diagramme.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal