2017-02-16 13 views
1

関係を持つ2つの異なるテーブルにデータを挿入しようとしています。たとえば、studenthobbyです。従ってstudent->hasOne(hobby)hobby->belongsTo(student)です。ちょうど挿入された最新のレコードのIDを取得するには?

私はすべてこの情報を1つの形式で挿入しています。このようなことを行うにあたって参考になるフォームは、one form submision to 2 controllers in laravelです。

私の質問は、学生と同じIDで趣味を保存するにはどうすればいいですか? studentを保存していた場合、別のフォームでhobbyを保存すると、簡単にstudent_idを取得してから、ユーザーIDでhobbyを保存できます。

+0

あなたは、MySQLテーブルまたはHTMLテーブル、または他の種類のテーブルについて話していますか? – virhonestum

+0

申し訳ありませんが言及を忘れています.itsの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

1つのコントローラに送信できます。より簡単に。その後do

$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', 
]); 

Iはauth()->user()を使用するが、それはUserクラスのインスタンスであることができます。

Laravel Docsを確認して、関係でできることをよりよく理解してください。

+0

私は本当にdownvoteを理解していない。 – phaberest

0

THXをgetstudentid()メソッドでそれを渡し、生徒の作成後に生徒IDを渡します。

関連する問題