Я успешно добавил новый комментарий в базу данных, но почему он должен обновить страницу, чтобы увидеть новый комментарий.я путаюсь с этой проблемой.где часть моего кода неправильная?
вот мой код.
route
Route::post('blog/{post}/comments/store', 'AuthMember\CommentController@store')->name('comment.add');
примечание контроллера комментария: я использую decode для идентификатора записи, используя хеш.
public function store(Requests\CommentStoreRequest $request)
{
if($request->ajax()){
$comment = new Comment;
$comment->body = $request->get('comment_body');
$comment->user()->associate($request->user('member'));
$key = $request->get('post_id');
$result = Hashids::connection('main')->decode($key)[0];
$post = Post::find($result);
$post->comments()->save($comment);
$response = array(
'status' => 'success',
'msg' => 'comment has been added',
);
return Response::json($response);
}
}
форма комментария
{!! Form::open(array(
'route' => ['comment.add', $post->slug],
'method' => 'POST',
'id' => 'form',
'name' => 'form',
'data-parsley-validate'))
!!}
<div class="form-group {{ $errors->has('comment_body') ? 'has-error': '' }}">
{!! Form::textarea('comment_body', null, array(
'class' => 'form-control elastic',
'id' => 'comment_body',
'rows' => '3',
'name' => 'comment_body',
'placeholder' => 'Write Something...',
'required', 'minlength="4"')
)
!!}
@if($errors->has('comment_body'))
<span class="help-block">{{$errors->first('comment_body')}}</span>
@endif
<input type="hidden" name="post_id" value="{{ $parameter }}" />
</div>
<div class="form-group">
{!! Form::submit('Submit', array(
'name' => 'submit',
'class' => 'btn btn-primary',
'id' => 'btnComments'
)) !!}
</div>
{!! Form::close() !!}
ajaxтак что это мой ajax для хранения нового комментария в базе данных
<script>
$(document).ready(function(){
var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content');
$('#form').on('submit', function(event) {
event.preventDefault();
var form = $(this);
var url = form.attr('action');
$.ajaxSetup({
headers: { 'X-CSRF-Token' : $('meta[name=_token]').attr('content') }
});
$.ajax({
// url: '{{route('comment.add',[$post->slug])}}',
url: url,
type: 'POST',
data: form.serialize(),
dataType: 'JSON',
success: function (data) {
console.log(data);
},
error: function(data){
console.log(data);
}
});
});
});
</script>