如何获取刚刚插入的最新记录的ID?
我试图插入数据到2个不同的表格与关系..例如student
和hobby
。所以student->hasOne(hobby)
和hobby->belongsTo(student)
。如何获取刚刚插入的最新记录的ID?
我插入所有这些信息一次去... ..在一个形式为您参考做这样的事情:one form submision to 2 controllers in laravel。
现在我的问题是如何将学生的爱好保存为同一个ID? 如果我先保存student
然后再保存hobby
然后我可以很容易得到student_id
然后我可以保存hobby
与用户ID。
insertGetId()
?
$studentId = DB::table('students')->insertGetId(
['name' => 'John']
);
然后你可以使用TE ID为,涉及到其他型号任务:
DB::table('hobbies')->inset(
['student_id' => $studentId, 'hobby' => $hobby]
);
你可以找到更多有关查询的位置:https://laravel.com/docs/5.4/queries
您可以提交给一个控制器。更轻松。然后做
$student = Student::create([
'name' => $request->name,
...
]);
$hobby = Hobby::create([
'student_id' => $student->id,
'schedule' => $request->schedule,
...other data
]);
你可以使用关系插入它,而不必关心id。
$hobby = auth()->user()->hobby()->create([
'hobby_column1' => 'bla bla bla',
'hobby_column2' => 'bla bla bla',
]);
在我使用auth()->user()
的例子,但它可以User
类的任何实例。
检查Laravel Docs以更好地了解您可以对关系做些什么。
我真的不明白downvote。 – phaberest
THX的答案家伙..我没它通过getstudentid()方法并在创建学生之后传递学生ID ...。
你是在谈论MySQL表或HTML表或其他类型的表? – virhonestum
对不起忘了提及..其中mysql表 – Mikethetechy