2017-03-02 5 views
1

Ich frage mich, ob sein wegen des Modells, und ich weiß nicht, wo Modell-Datei setzen und was auf sie zu schreiben, im neuen 5.2I cant Daten einfügen 5.2 mit Ajax in Laravel db

html Laravel (testing.blade.php)

<input type="text"id="name" name="name"> 
<button type="submit" id="add">ADD</button> 

ajax

$("#add").click(function() { 
     $.ajax({ 
      type: 'post', 
      url: 'addItem', 
      data: { 
       '_token': $('input[name=_token]').val(), 
       'name': $('input[name=name]').val() 
      }, 
      success: function(data) { 
       alert(data); 
      }, 
     }); 
     $('#name').val(''); 
    }); 

Routen

Route::post ('test', '[email protected]'); 

Controller

public function addItem(Request $request) { 
    $data = new Comments(); 
    $data->comment = $request->name; 
    $data->save(); 
    return response()->json ($data); 
} 
+0

in url Ajax-Aufruf sollten Routennamen sein, in Ihrem Fall 'Test' statt 'addItem' –

+0

darüber hinaus gibt es kein Eingabeelement als '_token' in Blade-Datei –

+0

ich schon ändern der Ajax-Aufruf noch nicht einfügen – donnah

Antwort

1
  • Sie benötigen die csrf Feld hinzufügen und diesen Wert an den Server senden.
  • Die Ajax-URL müssen mit dem Routenelement (nicht mit dem Controller Funktionsname)

BLADE zum Spiel:

{{ csrf_field() }} 
<input type="text" id="commentName" name="commentName"> 
<button type="submit" id="add">ADD</button> 

AJAX:

$("#add").click(function() { 
    $.ajax({ 
    type: 'post', 
    url: '/add-item', 
    data: { 
     '_token': $('input[name="_token"]').val(), 
     'name': $('input[name="commentName"]').val() 
    }, 
    success: function(data) { 
     alert(data); 
    }, 
    }); 
    $('#name').val(''); 
}); 

ROUTE:

Route::post ('add-item', '[email protected]'); 

Documentation regarding to CSRF Protection.