2016-10-30 1 views
0

Ich habe Probleme mit Laravel 5.3, insbesondere, mit AJAX Anfrage Daten von meinem JavaScript, ich bin in der Lage, ein Objekt zu machen, aber wenn ich save Methode hole ich 500 (Interner Serverfehler).Laravel, kann kein Objekt mit AJAX Anfrage erstellen

Das ist mein Weg:

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

Das ist mein Controller ist:

public function ajax_store(Request $request) 
{ 
    $comment = new Comment(); 
    $comment->body = $request->body; 
    $comment->post_id = $request->post_id; 
    $comment->user_id = auth()->id(); 
    $comment->save(); 
    return response()->json(['data' => $comment]); 
} 

Das ist mein Ajax-Anforderung ist:

$('.comment-submit-button').on('click', function(e) { 
    e.preventDefault(); 
    var body = $(this).closest('form').find('textarea').val(); 
    var post_id = $(this).data(); 

    $.ajax({ 
     method: 'POST', 
     url: urlCreateComment, 
     data: { 
      body: body, 
      post_id: post_id 
     } 
    }).done(function(data) { 
     console.log(data['data']); 
    }); 

edit: Mein Import in meinem Index Seite

@push('scripts') 
<script> 
    var urlCreateComment = '{{ url('create_comment') }}'; 
</script> 

<script src="{{ asset('/js/realtime.js') }}"></script> 
<script> 
    $.ajaxSetup({ 
     headers: { 
     'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 
     } 
    }); 
</script> 
@endpush 

meine Form:

<form action="{{ url('create_comment') }}" method="post"> 
    <div class="form-group"> 
     <textarea placeholder="Write a comment ..." class="form-control" name="body" cols="30" rows="1"></textarea> 
    </div> 
    <!-- /.form-group --> 
    {{ csrf_field() }} 

    <div class="form-group adjust"> 
     <button data-id="{{ $post->id }}" type="submit" class="comment-submit-button"> 
      <i class="fa fa-caret-right"></i> 
     </button> 
    </div> 

</form> 

edit: ich diesen Fehler: Array String-Konvertierung (SQL: insert into comments ...

edit: ... ich es gelöst, die Problem war, dass ich habe die get-Methode auf die Anfrage zu implementieren ...

$request->get('body'); 

aber jetzt habe ich ein neues Problem, wenn ich will ein hochladen Bild und ich benutze hasFile() -Methode über Ajax mit Laravel 5.3 es zurück Null ... warum?

Hat jemand das schon einmal erlebt? Jeder Einblick und Rat würde wirklich geschätzt werden. Vielen Dank im Voraus!

var post_id = $(this).data(); // $request->get('post_id') will produce an array 

Um dies:: die folgenden

+0

Wo ist Ihre JS Variable 'urlCreateComment' definiert? 500 Fehler kommen mit spezifischen Details, einschließlich einer hilfreichen Nachricht, also was ist das? – ceejayoz

+0

Danke für Ihre Antwort, wie kann ich diese Informationen finden? – Anas

+0

Überprüfen Sie die Entwicklerkonsole Ihres Browsers. Laravel gibt standardmäßig Debug-Informationen über einen 500-Fehler an den Browser aus. – ceejayoz

Antwort

1

In Ihrem JS Änderung

var post_id = $(this).data('id'); 
+0

Sheikh heera, was ist mit deinem Blog passiert? – itachi

+0

Nein ist es gleich – Anas

Verwandte Themen