2016-10-18 20 views
2

私はidの配列を挿入する: create.blade:laravel 5に複数の行を挿入するにはどうすればよいですか?

{{ Form::open(array('route' => 'Charge.store','method'=>'POST')) }} 
     <select id="disabledSelect" class="form-control" name="Facture_id"> 
      <option value="{{ $Facture->id }}" >{{ $Facture->Num }}</option> 
     </select> 
     <br/> 
     <div class="form-inline"> 
      <div class="form-group"> 
       <input type="text" class="form-control" name="rows[0][Title]" placeholder="libelé"/> 
      </div> 
      <div class="form-group"> 
       <input type="text" class="form-control" name="rows[0][Quantity]" placeholder="Quantité"/> 
      </div> 
      <div class="form-group"> 
       <input type="text" class="form-control" name="rows[0][Price]" placeholder="Prix unitaire "/> 
      </div> 
      <div class="form-group"> 
       <input type="button" class="btn btn-default" value="Ajouter" onclick="createNew()" /> 
      </div> 
      <div id="mydiv"></div> 
     </div> 
     <br/> 

     <div class="form-group"> 
      <input type="submit" value="Ajouter" class="btn btn-info"> 
      <a href="{{ route('Facture.index') }}" class="btn btn-default">Cancel</a> 
     </div> 
     {{ Form::close() }} 

<script> 
    var i = 2; 

    function createNew() { 
     $("#mydiv").append('<div class="form-group">'+'<input type="text" name="rows[' + i +'][Title]" class="form-control" placeholder="libelé"/>'+ 
       '</div>'+'<div class="form-group">'+'<input type="text" name="rows[' + i +'][Quantity]" class="form-control" placeholder="Quantité"/>'+'</div>'+'<div class="form-group">'+'<input type="text" name="rows[' + i +'][Price]" class="form-control" placeholder="Prix unitaire "/>'+'</div>'+'<div class="form-group">'+ 
       '<input type="button" name="" class="btn btn-default" value="Ajouter" onclick="createNew()" />'+ 
       '</div><br/>'); 
     i++; 
    } 
</script> 

ここでは、私がフォームを送信しようとしたとき、それは私が何をすべき0 の値を持つ行を挿入、私のコントローラであり、 ?私はelequent bolkデータを使用しようとしましたが、問題は同じまま:

foreach ($rows as $row) 
{ 
    $charges[] = [ 
     'course_id' => $request->input('Facture_id'), 
     'Title' => $row['Title'], 
     'Quantity' => $row['Quantity'], 
     'Price' => $row['Price'], 
    ]; 
} 

Charge::insert($charges); 

はあなたが使用するすべての列名を追加することを忘れないでください:あなたはinsert()メソッドを使用することができます

enter image description here

public function store(Request $request) 
{ 
    // validated input request 
    $this->validate($request, [ 
     'Facture_id' => 'required', 


    ]); 

    // create new task 
    $rows = $request->input('rows'); 
    foreach ($rows as $row) 
    { 
     $Charges[] = new Charge(array(
      'course_id'=>$request->input('Facture_id'), 
      'Title'=>$row['Title'], 
      'Quantity'=>$row['Quantity'], 
      'Price'=>$row['Price'], 

     )); 
    } 
    Charge::create($Charges); 
    return redirect()->route('Charge.index')->with('success', 'Your task added successfully!'); 
} 

答えて

2

$fillableアレイに:

$fillable = ['course_id', 'Title', 'Quantity', 'Price']; 
関連する問題