Hello Laravel and Ajax I just started learning. When saving Ajax data, I am saving all data properly. But I'm having trouble uploading pictures. Is there anyone who can help?
/my controller
public function store(Request $request, Blog $blog)
{
$validator = Validator::make($request->all(), [
'blog_baslik' => 'required',
'blog_icerik' => 'required|string|min:2|max:1750',
'blog_resim' => 'required|mimes:jpg,jpeg,png',
]);
if ($validator->fails()) {
return response()->json(['errors' => $validator->errors()->all()]);
}
$blog->storeData($request->all());
if ($validator->passes()) {
$input['blog_resim'] = time() . '.' . $request->blog_resim. ".jpg";
$request->blog_resim->move(public_path('image/blog'), $input['image']);
Blog::create($input);
return response()->json(['success' => 'done',$input]);
}
}
//model
public function storeData($input)
{
return static::create($input);
}
//My script
<script type="text/javascript">
$(function () {
var table = $('.yajra-datatable').DataTable({
processing: true,
serverSide: true,
ajax: "{{ route('blog.list') }}",
columns: [
{data: 'DT_RowIndex', name: 'DT_RowIndex'},
{data: 'kategori_id', name: 'kategori_id'},
{data: 'blog_baslik', name: 'blog_baslik'},
{data: 'blog_resim', name: 'blog_resim', sortable: false, searchable: false},
{data: 'created_at', name: 'created_at'},
{
data: 'action',
name: 'action',
orderable: true,
searchable: true
},
]
});
});
// Create article Ajax request.
$('#SubmitCreateArticleForm').click(function(e) {
CKEDITOR.instances['blog_icerik'].updateElement();
e.preventDefault();
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url: "{{ route('blog.store') }}",
method: 'post',
data: {
kategori_id: $('#kategori_id').val(),
blog_baslik: $('#blog_baslik').val(),
blog_icerik: $('#blog_icerik').val(),
blog_resim: $('#blog_resim').val(),
blog_meta_title: $('#blog_meta_title').val(),
blog_meta_desc: $('#blog_meta_desc').val(),
},
success: function(result) {
if(result.errors) {
$('.alert-danger').html('');
$.each(result.errors, function(key, value) {
$('.alert-danger').show();
$('.alert-danger').append('<strong><li>'+value+'</li></strong>');
});
} else {
$('.alert-danger').hide();
$('.alert-success').show();
$('.yajra-datatable').DataTable().ajax.reload();
setInterval(function() {
$('.alert-success').hide();
$('.modal-backdrop').remove();
$('#CreateArticleModal').modal('hide');
}, 2000);
}
}
});
});
// Silme İşlemleri
var deleteID;
$('body').on('click', '#getDeleteId', function () {
deleteID = $(this).data('id');
})
$('#SubmitDeleteArticleForm').click(function (e) {
e.preventDefault();
var id = deleteID;
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
$.ajax({
url: "blog/" + id,
method: 'DELETE',
success: function (result) {
$('.modal-backdrop').remove();
$('#DeleteArticleModal').hide();
$('.alert-success').show();
$('.yajra-datatable').DataTable().ajax.reload();
}
});
});
</script>
///ekleme işlemi