私のプロジェクトの配列入力の作業を手伝ってください。 これは、フォームフィールドです:配列フィールドは常にフィールドの最後の値をデータベースに格納します
<form action="" method="">
<input type="text" class="form-control" name="scores[]">
<input type="hidden" name="lesson_id[]" value="">
<input type="hidden" name="year_id" value="">
<input type="hidden" name="grade_id" value="">
<input type="hidden" name="clas_id" value="">
<input type="hidden" name="student_id" value="">
</form>
マイコントローラー:
public function store(Request $request)
{
foreach ($request->scores as $score)
{
$scr = new Assestment;
$scr->year_id = $request->year_id;
$scr->grade_id = $request->grade_id;
$scr->clas_id = $request->clas_id;
$scr->student_id = $request->student_id;
foreach($request->lesson_id as $lesson)
{
$scr->lesson_id = $lesson;
}
$scr->score = $score;
$scr->save();
}
}
マイモデル:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Assestment extends Model
{
protected $table = 'assestments';
protected $fillable = [
'year_id', 'grade_id', 'clas_id', 'student_id', 'lesson_id', 'score',
];
public function students()
{
return $this->belongsToMany('App\Models\Student');
}
}
私は、フィールド "スコア[]" と "の値をしたいと思いますlesson_id [] "を配列として使用して、複数のデータをデータベースに格納します。 しかし、私がフォームを送信するとき、 "lesson_id []"は常にフォームの最後の値を保存します。たとえば、 "lesson_id []"フィールドには "1,2,3,4"のような複数の値が含まれていますが、データベースに格納される値は常に "4(フィールドの最後の値)"です。
どうすればよいですか?あなたはforeachループの後にデータを格納しているため
を使用し、各値を盗んするに
serialize()
を使用することができます。 –