Einfügen von array-Werten in die Datenbank ein, in laravel
Habe ich 8 verschiedene Fragen, die aus der Datenbank kommen nach dem Zufallsprinzip. Ich will jetzt legen Sie die question_id
, user_id
und en_answer
in en_answers
Tabelle. Daten, die eingefügt wurde, aber hier einige Fehler wie die erste ist, es ist das einfügen nur eine Zeile Wert und das zweite ist, die Frage-id ist nicht korrekt.
Ich habe versucht, so etwas wie unten. Würde mir bitte jemand helfen, korrigieren Sie die controller-Methode -
In index.blade.php
<form action="{{ url('en-question-answer') }}" method="POST">
{{ csrf_field() }}
<?php
$count=1;
;?>
@foreach($equestions as $equestionType)
@foreach($equestionType as $key => $equestion)
<p>{{ $equestion->question }}</p>
<input type="hidden" name="question_id[{{$count}}]" value="{{ $equestion->id }}">
<label class="radio-inline">
<input type="radio" name="en_answer[{{$count}}]" value="{{ $equestion->option1 }}">{{ $equestion->option1 }}
</label>
<label class="radio-inline">
<input type="radio" name="en_answer[{{$count}}]" value="{{ $equestion->option2 }}">{{ $equestion->option2 }}
</label>
<hr>
<?php $count++; ?>
@endforeach
@endforeach
<button type="submit" class="btn btn-primary btn-sm pull-right">Submit</button></form>
In meine controller-
public function store(Request $request, User $user){
$user_id = Sentinel::getUser()->id;
$answer = new EnAnswer;
$answer->user_id = $user_id;
$data = Input::get();
for($i = 1; $i < count($data['en_answer']); $i++) {
$answer->en_answer = $data['en_answer'][$i];
}
for($i = 1; $i < count($data['question_id']); $i++) {
$answer->question_id = $data['question_id'][$i];
}
//dd($answer);
//return $answer;
$answer->save();
return redirect('submitted')->with('status', 'Your answers successfully submitted');
}
- Ich glaube, Laravel hat das
Object::insert(array $array)
oderDB::table([name])->insert(array $array))
Methoden zum einfügen von array ' s
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du bist das einfügen in die DB nur eine Antwort, die Letzte. Auch, bereiten Sie die Daten und fügen Sie alle Antworten mit nur einer Anfrage: