如何获取刚刚插入的最新记录的ID?
How to get the ID of the latest record just inserted?
我正在尝试将数据插入到 2 个具有关系的不同表中.. 例如 student
和 hobby
。所以 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...在创建学生之后。
我正在尝试将数据插入到 2 个具有关系的不同表中.. 例如 student
和 hobby
。所以 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...在创建学生之后。