Database 如何获取刚刚插入的最新记录的ID?
我正在尝试将数据插入到具有关系的两个不同表中。。例如Database 如何获取刚刚插入的最新记录的ID?,database,forms,laravel,relationship,Database,Forms,Laravel,Relationship,我正在尝试将数据插入到具有关系的两个不同表中。。例如学生和爱好。所以student->hasOne(爱好)和hobby->belongsTo(学生) 我将一次性插入所有这些信息。以一种形式供您在执行类似操作时参考: 现在我的问题是,我如何用与学生相同的id保存爱好? 如果我先保存student,然后保存另一个表单hobby,那么我可以很容易地首先获取student\u id,然后我可以使用用户id保存hobby。您可以提交给一个控制器。更容易的。那就做吧 $student = Student::
学生
和爱好
。所以student->hasOne(爱好)
和hobby->belongsTo(学生)
我将一次性插入所有这些信息。以一种形式供您在执行类似操作时参考:
现在我的问题是,我如何用与学生相同的id保存爱好?
如果我先保存
student
,然后保存另一个表单hobby
,那么我可以很容易地首先获取student\u id
,然后我可以使用用户id保存hobby
。您可以提交给一个控制器。更容易的。那就做吧
$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
类的任何实例
检查以更好地了解如何处理关系
显然,您可以在
$hobby
中获取id,只需在创建后使用$hobby->id
。如何插入getID()
然后,您可以将te ID用于与其他模型相关的任务:
DB::table('hobbies')->inset(
['student_id' => $studentId, 'hobby' => $hobby]
);
你可以在这里找到更多关于查询的信息:thx的答案。我是通过getstudentid()方法完成的,并在创建学生后传递学生id。你是在谈论MySQL表还是HTML表,或者其他类型的表?很抱歉,忘了提到它的MySQL表
DB::table('hobbies')->inset(
['student_id' => $studentId, 'hobby' => $hobby]
);