2016-04-22 2 views
4

Я разрабатываю веб-приложение, появляется сценарий, когда пользователь может вставлять сразу несколько записей. Я создал форму на маршруте result/create, где пользователь может добавить несколько строк в переднем конце, теперь, когда пользователь нажимает на отправку, я хочу, чтобы все данные записей/строк были в форме массива вставлены в базу данных. Теперь, когда я нахожусь, отправлю, я получаю эту ошибку Undefined index: id.Как вставить несколько записей в базу данных с помощью Laravel Eloquent

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 

Student Controller:

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'); 
    } 

ответ

3

Вы получаете эту ошибку, потому что у вас нет поля 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'); 
} 
+0

ErrorException в Students.php линии 48: Undefined смещение: 0 Я получаю эту ошибку –

+1

Ах, я имел 'key's назад. См. Редактирование. – Samsquanch

+0

Работали, как обаяние! –

Смежные вопросы