Hi All
I’m having some trouble in Laravel with a file upload in Ajax. Currently i’m getting an error 500 with Integrity constraint violation: 1048 Column 'sw_type' cannot be null (SQL: insert into tuningsoftware...
Currently my ajax script is using the Route::resource and the ajax script updates the record or creates a new record depending on if it can pull the ID of the record and match the first line of the request. Ideally i would like to retain this functionality if i can.
Please can someone tell me where i’m going wrong.
Controller
public function store(Request $request)
{
// request()->validate([
// 'sw_link' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
// ]);
if ($files = $request->file('sw_link'))
{
$sw_link = $request->sw_link->store('public/images');
}
$softwareEnq = \App\TuningSoftware::updateOrCreate(
['id' => $request->software_id],
[
'sw_link' => $request->sw_link,
'sw_type' => $request->sw_type,
'sw_manual' => $request->sw_manual,
'sw_os' => $request->sw_os,
'status' => $request->status
]
);
return Response::json($softwareEnq);
}
Upload file snippet in view:
<div class="col-sm-12">
<label>Upload File</label>
<input type="file" name="sw_link" id="sw_link">
</div>
JS
<script>
$(document).ready(function () {
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
/* When click add button */
$('#create-new-post').click(function () {
$('#btn-save').val("create-user");
$('#userForm').trigger("reset");
$('#softwareModal').html("Add New Software");
$('#ajax-crud-modal').modal('show');
});
/* When click edit */
$('body').on('click', '#edit-user', function () {
var softwareEnq_id = $(this).data('id');
$.get('softwareEnq/' + softwareEnq_id +'/edit', function (data) {
$('#softwareModal').html("Edit Enquiry");
$('#btn-save').val("edit-user");
$('#ajax-crud-modal').modal('show');
$('#software_id').val(data.id);
$('#sw_type').val(data.sw_type);
$('#sw_os').val(data.sw_os);
$('#sw_link').val(data.sw_link);
$('#sw_manual').val(data.sw_manual);
$('#status').val(data.status);
})
});
//delete
$('body').on('click', '.delete-user', function ()
{
var softwareEnq_id = $(this).data("id");
if(confirm("Are You sure want to delete !"))
{$.ajax({
type: "DELETE",
url: "{{ url('softwareEnq')}}"+'/'+softwareEnq_id,
success: function (data)
{
$("#softwareEnq_id" + softwareEnq_id).remove();
},
error: function (data)
{
console.log('Error:', data);
}
});
}
});
});
if ($("#userForm").length > 0) {
$("#userForm").validate({
submitHandler: function(form) {
var actionType = $('#btn-save').val();
$('#btn-save').html('Sending..');
$.ajax({
url: "{{ url('softwareEnq') }}",
type: "POST",
data: $('#userForm').serialize(),
dataType: 'json',
contentType: false,
cache: false,
processData: false,
success: function( data )
{
$('#send_form').html('Submit');
$('#position-1-success-changelog').show(function()
{
var notice = new PNotify({
title: 'Success',
text: 'Software Status Updated.',
type: 'success',
icon: 'fa-check-circle',
addclass: 'stack-bottomleft'
}); //end function
}); //end response
// console.log('Success:', data);
$('#updateTable').trigger("reset");
$('#ajax-crud-modal').modal('hide');
$('#btn-save').html('Save Changes');
// console.log('Info:', data);
setTimeout(
function() {
window.location.reload(true);
}, 800);
},
error: function (data) {
console.log('Error:', data); // remove this for production
$('#btn-save').html('Save Changes');
}
});
}
})
}
Thank you in advance.