Laravel 5.3で問題が発生しました。特に、JavaScriptからAJAXリクエストデータを投稿するとオブジェクトを作成できますが、 (内部サーバーエラー)。Laravel、AJAXリクエストでオブジェクトを作成できません
これは私のルートです:
Route::post('create_comment', '[email protected]_store');
これは私のコントローラです:
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]);
}
これは私のAjaxのリクエストです:
$('.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']);
});
編集: 私のインポートは私の指標でありますページ
@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
私形式:
<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>
編集: 私はこのエラーを取得する:文字列への変換 アレイ(SQL:comments
に挿入...
編集:...私は、それを解決問題は、私は要求にgetメソッドを実装する必要がありました...
$request->get('body');
しかし、今私は新しい問題をアップロードするimageと私はLarravel 5.3でajax経由でhasFile()メソッドを使用しています。それはnullを返します...なぜですか?
誰もこれまでに経験したことがありますか?どんな洞察とアドバイスも本当に感謝しています。前もって感謝します!
どこJS変数 'urlCreateComment'定義されてはいるのですか? 500のエラーには、役に立つメッセージを含む特定の詳細が付いているので、それは何ですか? – ceejayoz
返信いただきありがとうございます。どうすればこの情報を見つけることができますか? – Anas
ブラウザのデベロッパーコンソールを確認してください。デフォルトでLaravelは500エラーに関するデバッグ情報をブラウザに出力します。 – ceejayoz