php – 如何使用Laravel Eloquent将多个记录插入数据库
发布时间:2020-12-14 19:42:53 所属栏目:大数据 来源:网络整理
导读:我正在开发一个Web应用程序,有一个用户可以一次插入多个记录的场景.我在路由结果/创建时创建了一个表单,用户可以在前端添加多行,现在当用户点击提交时我想要所有的记录/行数据以数组形式插入到数据库中.现在,当我点击提交时,我得到此错误未定义索引:id. PS
我正在开发一个Web应用程序,有一个用户可以一次插入多个记录的场景.我在路由结果/创建时创建了一个表单,用户可以在前端添加多行,现在当用户点击提交时我想要所有的记录/行数据以数组形式插入到数据库中.现在,当我点击提交时,我得到此错误未定义索引:id.
PS:我使用的是Laravel 5.2和资源控制器. 添加记录视图: @extends('layouts.app') @section('content') <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.min.js"></script> <script type="text/javascript"> $(function () { $('.add').click(function () { var n = ($('.resultbody tr').length - 0) + 1; var tr = '<tr><td class="no">' + n + '</td>' + '<td><input type="text" class="name form-control" name="name[]" value="{{ old('name') }}"></td>'+ '<td><input type="text" class="fname form-control" name="fname[]" value="{{ old('fname') }}"></td>'+ '<td><input type="text" class="rollno form-control" name="rollno[]" value="{{ old('rollno') }}"></td>'+ '<td><input type="text" class="obtainedmarks form-control" name="obtainedmarks[]" value="{{ old('email') }}"></td>'+ '<td><input type="text" class="totalmarks form-control" name="totalmarks[]"></td>'+ '<td><input type="text" class="percentage form-control" name="percentage[]"></td>'+ '<td><input type="button" class="btn btn-danger delete" value="x"></td></tr>'; $('.resultbody').append(tr); }); $('.resultbody').delegate('.delete','click',function () { $(this).parent().parent().remove(); }); }); </script> <div class="container"> <div class="row"> <div class="col-md-10 col-md-offset-1"> <div class="panel panel-default"> <div class="panel-heading">Add Results</div> <div class="panel-body"> <form class="form-horizontal" role="form" method="POST" action="{{ url('/result') }}"> {!! csrf_field() !!} <table class="table table-striped"> <thead> <tr> <th>ID</th> <th>Student Name</th> <th>Father Name</th> <th>Roll No</th> <th>Obtained Marks</th> <th>Total Marks</th> <th>%</th> <th>Delete</th> </tr> </thead> <tbody class="resultbody"> <tr> <td class="no">1</td> <td> <input type="text" class="name form-control" name="name[]" value="{{ old('name') }}"> </td> <td> <input type="text" class="fname form-control" name="fname[]" value="{{ old('fname') }}"> </td> <td> <input type="text" class="rollno form-control" name="rollno[]" value="{{ old('rollno') }}"> </td> <td> <input type="text" class="obtainedmarks form-control" name="obtainedmarks[]" value="{{ old('email') }}"> </td> <td> <input type="text" class="totalmarks form-control" name="totalmarks[]"> </td> <td> <input type="text" class="percentage form-control" name="percentage[]"> </td> <td> <input type="button" class="btn btn-danger delete" value="x"> </td> </tr> </tbody> </table> <center><input type="button" class="btn btn-lg btn-primary add" value="Add New Item"> <input type="submit" class="btn btn-lg btn-default" value="Submit"></center> </form> </div> </div> </div> </div><!-- First Row End --> </div> <!-- Container End --> @endsection 学生管理员: public function store(Request $request) { $input = Input::all(); $condition = $input['id']; for($id = 0; $id<$condition; $id++){ $student = new Student; $student->name = $input['name'][$id]; $student->save(); } return view('students.index'); } 解决方法
您收到该错误,因为您没有ID表单字段.试试这个:
public function store(Request $request) { $input = Input::all(); $condition = $input['name']; foreach ($condition as $key => $condition) { $student = new Student; $student->name = $input['name'][$key]; $student->fname = $input['fname'][$key]; $student->rollno = $input['rollno'][$key]; $student->obtainedmarks = $input['obtainedmarks'][$key]; $student->totalmarks = $input['totalmarks'][$key]; $student->percentage = $input['percentage'][$key]; $student->save(); } return view('students.index'); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |