2016-11-01 2 views
0

이것은 시나리오입니다.Laravel - 부모와 동일한 테이블의 일대 다

양식을 작성하면이 양식에 이름, 전자 메일, 국가 및 기술 (미리 채워진 데이터베이스 테이블 기술로 ​​채워지는 여러 가지 기술이있는 드롭 다운)이 있습니다. 사람이 양식을 채울 때 그는 그가 가지고있는 여러 기술을 선택할 수 있습니다. 이것은 사용자가 많은 기술을 가지고 있음을 의미합니다 (1 대 다수). 사용자가 양식을 채운 후 제출을 클릭하십시오. UserTable을 저장하고 UserSkills를 사용자와 관련하여 저장하려고합니다.

문제는 사용자가 아직 저장하지 않아서 스킬을 저장하지 못할 수 있습니다. 저장을 누르면 같은 시간에 모두 저장해야합니다.

내가 Laravel

+0

가능한 복제 [Laravel, 마지막으로 삽입 아이디 설득력을 사용하여 얻을] (http://stackoverflow.com/questions/21084833/laravel-get-last-insert-id-using-eloquent) – snitch182

+0

당신이 원하는 다음과 같은 "마지막 삽입 ID 가져 오기"의 예를 찾으십시오. http://stackoverflow.com/questions/21084833/laravel-get-last-insert-id-using-eloquent – snitch182

답변

1

스킬 ID가 배열 형식으로되어 있다고 가정합니다. 피벗 테이블이 UserSkills입니다. 사용자 클래스를 사용하여 belongsToMany를 만듭니다.이 관계는 다 대다 관계입니다 (한 사용자는 여러 스킬을 가질 수 있고 한 스킬은 여러 사용자에게 속할 수 있음). 그 후 사용자에게

$user = new User(); 
$user->username = $request->input('username'); 
// other inputs or use a `create` method 
$user->save(); 

을 만들 때 App\User 클래스 그 후

public function skills(){ 
    return $this->belongsToMany('\App\UserSkills','table_name','user_id','skill_id'); 
} 

Detailed info on pivot table creation

에 그래서 새로 만든 사용자에게 기술 ID를 연결합니다.

$user->skills()->attach($request->input('skill_ids')); 
0

에서이 작업을 수행 할 수 있습니다 최선의 방법 당신과 같이 새로 만든 사용자에게 VAR을 할당 할 수 있습니다

$user = User::create([ 
    'username' => 'user' 
]); 

당신은 그때 어디

UserSkills::create([ 
    'user_id' => $user->id, 
]); 
아래 그 $ 사용자를 사용할 수 있습니다
+0

주입 된 스킬 정보를 얻는 방법 같은 컨트롤러 메소드에서도 제어 메소드에서 Request를 통해 주입 된 사용자의 정보 만 가져 오기 때문에 – user3602477

관련 문제