Я хочу добавить комментарий с помощью Ajax - PullRequest
0 голосов
/ 27 мая 2018

Так вот мой код для AJAX

Я думаю, что код AJAX правильный.

$(document).ready(function(){
$('.add-comment').click(function(){
var comment_data = $('.comment-form').serialize();


$.ajax ({
headers: {
  'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},

method: 'POST',
url: '/comment',
data: comment_data,

success: function(data) {
  console.log(data);
  $('.all-comment').append(data);
},
error: function(data) {
  console.log('error');
}
})
})

});

вот мой контроллер

  public function store(Request $reqeust) {

  $comment = Comment::create([

    'body' => request('body'),

  ]);

  return view('welcome',compact('comment'))->render();


}

Я думаю, что проблеманаходится в контроллере, кстати, я новичок в разработке, так что .. да

и да, я получаю ошибку

POST http://localhost:8000/comment 500 (внутренняя ошибка сервера)

1 Ответ

0 голосов
/ 27 мая 2018

Если вы делаете вызов AJAX, вам, вероятно, не нужно возвращать весь приветственный вид.Проще всего вернуть true, если комментарий был успешно сохранен, в противном случае - false.

Кроме того, вы ни к чему не прикрепляете свой комментарий.Я предполагаю, что у вас есть другие поля, которые необходимо заполнить в таблице комментариев, такие как post_id.Если это так, вы можете передать post_id в качестве другого параметра в запросе и сделать:

public function store(Request $request)
{
    $post = Post::findOrFail( $request->post_id );

    Comment::create([
        'post_id'  => $post->id,
        'body'      => $request->body
    ]);

    return true;
}

Это подтверждает, что на самом деле есть сообщение, на которое можно сослаться.

Еще лучше,Вы можете использовать привязку модели маршрута и отношения, чтобы сделать:

public function store(Request $request, Post $post)
{
    $post->comments->create([
        'body' => $request->body
    ]);

    return true;
}

Это сделает то же самое, и это немного чище.Кроме того, он автоматически добавит post_id из-за взаимосвязи (при условии, что вы установили это).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...