无法使用 Eloquent 从数据库中获取 last_insert_id
Can't get last_insert_id from database with Eloquent
我正在使用表单和 AJAX 将数据发送到我的控制器,我正在尝试 return 将数据插入数据库到页面。
一切正常,除了项目的 id。
以下是我的控制器:
public function store(Request $request)
{
$this->validate($request, [
'name' => 'required|max:255',
]);
$tag = new tag;
$tag->name = $request->name;
$tag->save();
$last_insert_id = $tag->id;
$data = [
'success' => true,
'message'=> 'Your AJAX processed correctly',
'name' => $tag->name,
'id' => $last_insert_id
] ;
return response()->json($data);
}
和脚本的相关部分:
$(document).ready(function(){
$("#submit").click(function() {
var name = $("#tagName").val();
var token = $("#token").val();
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
type: "post",
data: "name="+name,
dataType:'json',
url: "{{ route('tags.store') }}",
success:function($data){
console.log($data);
$("#msg").html("<div class=\"alert alert-primary my-0\">tag Saved</div>");
$("msg").toggleClass("invisible")
$("#msg").fadeOut(2000);
$("#tagTable").append('<tr><td scope="col" class="text-center align-middle">'+$data[id]+'</td><td scope="col"><button type="button" class="btn btn-outline-secondary btn-sm my-1">'+name+'</button></td><td scope="col" class="text-center" >0</td></tr>');
}
});
})
})$("#tagTable").append('<tr><td scope="col" class="text-center align-middle">'+id+'</td><td scope="col"><button type="button" class="btn btn-outline-secondary btn-sm my-1">'+name+'</button></td><td scope="col" class="text-center" >0</td></tr>');
}
});
如果我删除字符串的 id
部分,它将起作用,并显示 name
.
console.log 给出以下内容:
{success: true, message: "Your AJAX processed correctly", name: "test2", id: 36}
Uncaught ReferenceError: id is not defined
at Object.success (tags:102)
at l (app.js:1)
at Object.fireWith [as resolveWith] (app.js:1)
at E (app.js:1)
at XMLHttpRequest.<anonymous> (app.js:1)
我不确定它是从表单输入中获取 name
,还是从控制器中 return 编辑数据?
当您附加到#tagTable 时,您必须使用data.id
,因为数据是json 对象
我正在使用表单和 AJAX 将数据发送到我的控制器,我正在尝试 return 将数据插入数据库到页面。
一切正常,除了项目的 id。
以下是我的控制器:
public function store(Request $request)
{
$this->validate($request, [
'name' => 'required|max:255',
]);
$tag = new tag;
$tag->name = $request->name;
$tag->save();
$last_insert_id = $tag->id;
$data = [
'success' => true,
'message'=> 'Your AJAX processed correctly',
'name' => $tag->name,
'id' => $last_insert_id
] ;
return response()->json($data);
}
和脚本的相关部分:
$(document).ready(function(){
$("#submit").click(function() {
var name = $("#tagName").val();
var token = $("#token").val();
$.ajax({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
type: "post",
data: "name="+name,
dataType:'json',
url: "{{ route('tags.store') }}",
success:function($data){
console.log($data);
$("#msg").html("<div class=\"alert alert-primary my-0\">tag Saved</div>");
$("msg").toggleClass("invisible")
$("#msg").fadeOut(2000);
$("#tagTable").append('<tr><td scope="col" class="text-center align-middle">'+$data[id]+'</td><td scope="col"><button type="button" class="btn btn-outline-secondary btn-sm my-1">'+name+'</button></td><td scope="col" class="text-center" >0</td></tr>');
}
});
})
})$("#tagTable").append('<tr><td scope="col" class="text-center align-middle">'+id+'</td><td scope="col"><button type="button" class="btn btn-outline-secondary btn-sm my-1">'+name+'</button></td><td scope="col" class="text-center" >0</td></tr>');
}
});
如果我删除字符串的 id
部分,它将起作用,并显示 name
.
console.log 给出以下内容:
{success: true, message: "Your AJAX processed correctly", name: "test2", id: 36}
Uncaught ReferenceError: id is not defined
at Object.success (tags:102)
at l (app.js:1)
at Object.fireWith [as resolveWith] (app.js:1)
at E (app.js:1)
at XMLHttpRequest.<anonymous> (app.js:1)
我不确定它是从表单输入中获取 name
,还是从控制器中 return 编辑数据?
当您附加到#tagTable 时,您必须使用data.id
,因为数据是json 对象