2016-10-18 6 views
2

Я хочу, чтобы вставить массив с идентификатором: 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 данные, но проблема остается той же:

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

Вы можете использовать insert() метод:

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

Charge::insert($charges); 

Не забудьте добавить все имена столбцов, которые вы используете до $fillable:

$fillable = ['course_id', 'Title', 'Quantity', 'Price']; 
Смежные вопросы