2017-02-16 138 views
1

我试图插入数据到2个不同的表格与关系..例如studenthobby。所以student->hasOne(hobby)hobby->belongsTo(student)如何获取刚刚插入的最新记录的ID?

我插入所有这些信息一次去... ..在一个形式为您参考做这样的事情:one form submision to 2 controllers in laravel

现在我的问题是如何将学生的爱好保存为同一个ID? 如果我先保存student然后再保存hobby然后我可以很容易得到student_id然后我可以保存hobby与用户ID。

+0

你是在谈论MySQL表或HTML表或其他类型的表? – virhonestum

+0

对不起忘了提及..其中mysql表 – Mikethetechy

回答

1

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

1

您可以提交给一个控制器。更轻松。然后做

$student = Student::create([ 
    'name' => $request->name, 
    ... 
]); 

$hobby = Hobby::create([ 
    'student_id' => $student->id, 
    'schedule' => $request->schedule, 
    ...other data 
]); 
-1

你可以使用关系插入它,而不必关心id。

$hobby = auth()->user()->hobby()->create([ 
    'hobby_column1' => 'bla bla bla', 
    'hobby_column2' => 'bla bla bla', 
]); 

在我使用auth()->user()的例子,但它可以User类的任何实例。

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

+0

我真的不明白downvote。 – phaberest

0

THX的答案家伙..我没它通过getstudentid()方法并在创建学生之后传递学生ID ...。

相关问题