我正在尝试将数据插入到两个不同的关系表中,例如student
和hobby
。所以student->hasOne(hobby)
和hobby->belongsTo(student)
。
我正在一次性插入所有这些信息..在一个表格中供您参考做这样的事情:one form submision to 2 controllers in laravel。
现在我的问题是如何保存与学生身份相同的爱好?如果我先保存student
然后另一种形式来保存hobby
然后我可以轻松地获得student_id
然后我可以用用户ID保存hobby
。
insertGetId()
怎么样?
$studentId = DB::table('students')->insertGetId(
['name' => 'John']
);
然后,您可以将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
]);
thx for answers guys ..i通过getstudentid()方法完成它并在创建学生后传递学生ID。
您可以使用关系插入它,而无需关心id。
$hobby = auth()->user()->hobby()->create([
'hobby_column1' => 'bla bla bla',
'hobby_column2' => 'bla bla bla',
]);
在示例中,我使用auth()->user()
,但它可以是User
类的任何实例。
检查Laravel Docs以更好地了解你可以用关系做什么。
显然,你将能够在$hobby
获得id,只需使用$hobby->id
创建一次。