Php Laravel使用Ajax从空值创建默认对象
我正在尝试使用Laravel中的AJAX POST方法更新我的表单,但提交表单时遇到错误: 从空值创建默认对象 我已经尝试了这段代码来实现我的目标 这是我的Ajax调用:Php Laravel使用Ajax从空值创建默认对象,php,jquery,ajax,laravel-5,Php,Jquery,Ajax,Laravel 5,我正在尝试使用Laravel中的AJAX POST方法更新我的表单,但提交表单时遇到错误: 从空值创建默认对象 我已经尝试了这段代码来实现我的目标 这是我的Ajax调用: $('.submit').click(function(){ $.ajaxSetup({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-t
$('.submit').click(function(){
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
var form = $('form')[0];
var update = new FormData(form);
var id =$('.designNo').val();
$.ajax({
type:"POST",
url:"/design_update/"+id,
processData: false, // Important!
contentType: false,
cache: false,
data:update,
success:function(results){
if (results==1) {
$("#result").html("Upadated Successfully");
$('#result')[0].scrollIntoView(true);
$("#result").addClass("alert alert-success");
window.setTimeout(function(){
window.location.href = "/design";
}, 2000);
}else{
$('#error').html(results);
$('#error')[0].scrollIntoView(true);
$('#error').addClass("alert alert-danger");
}
}
});
});
这就是我在Laravel Controller中完成的目标
这是我的Laravel控制器页面:
public function update(Request $request, $id)
{
// To Update
// $validator = Validator::make($request->all(), [
$this->validate($request,[
'design_no'=>'required',
'design_image'=>'image|nullable|max:1999'
]);
// Handle file Upload
if ($request->hasFile('design_image')) {
// Get filename with image
$filenameWithex=$request->file('design_image');
// Get just file name
$filename=$_FILES['design_image']['name'];
// $filename=pathinfo($filenameWithex,PATHINFO_FILENAME);
// Get just ex
// $extension=pathinfo($filenameWithex,PATHINFO_EXTENSION);
// File Name To Store
$fileNameToStore=$filename;
// Upload Image
$path=$request->file('design_image')->storeAs('public/images',$fileNameToStore);
}else{
$fileNameToStore='noimage.jpg';
}
$design=design::find($id);
$design->design_no=$request->input('design_no');
$design->desg_1=$request->input('desg_1');
$design->design_image=$fileNameToStore;
$design->desg_2=$request->input('desg_2');
$design->desg_3=$request->input('desg_3');
$design->desg_4=$request->input('desg_4');
$design->desg_5=$request->input('desg_5');
$design->desg_6=$request->input('desg_6');
$design->save();
return '1';
}
问题在于
$design=design::find($id)代码>
我认为$design
中的单词$design=design::find($id)为空代码>在这里返回空值
如果是这样,你需要检查一下
$design=design::find($id);
if($design){
$design->desg_1=$request->input('desg_1');
$design->design_image=$fileNameToStore;
$design->desg_2=$request->input('desg_2');
$design->desg_3=$request->input('desg_3');
$design->desg_4=$request->input('desg_4');
$design->desg_5=$request->input('desg_5');
$design->desg_6=$request->input('desg_6');
}
如果您想更新您的记录,那么我建议您使用这种简单的更新查询方法
design::where('design_no',$id)->update([
'desg_1' => $request->input('desg_1'),
'design_image'=> $fileNameToStore,
'desg_2' => $request->input('desg_2'),
'desg_3' => $request->input('desg_3'),
'desg_4' => $request->input('desg_4'),
'desg_5' => $request->input('desg_5'),
'desg_6' => $request->input('desg_6')
]);
希望这将解决您的问题:)当我分析网络设计时,没有正确通过以下内容处理:表单数据;name=“design\u no”6是删除它并重新编码时不输入它(在查找任何spl字符中)它的输入和抛出错误如下:完整性约束冲突:1062键“designs\u design\u no\u unique”的重复条目“5”您出现此错误,因为您的表中已有一条记录,其中design\u design\u no\u unique=5我假设检查我的更新答案使用更新查询更新记录:)非常感谢@Mr.Pyramid