如何获取刚刚插入的最新记录的ID?

How to get the ID of the latest record just inserted?

我正在尝试将数据插入到 2 个具有关系的不同表中.. 例如 studenthobby。所以 student->hasOne(hobby)hobby->belongsTo(student)

我一次性插入所有这些信息..以一种形式供您参考做这样的事情:

现在我的问题是如何保存与学生相同id的爱好? 如果我先保存 student 然后另一种形式保存 hobby 那么我可以先轻松获得 student_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 class.

的任何实例

检查 Laravel Docs 以更好地了解您可以使用关系做什么。

显然,您将能够在 $hobby 中获取 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

谢谢大家的答案..我是通过getstudentid()方法完成的,并传递了学生ID...在创建学生之后。