라라벨:User::의 ID를 가져옵니다. 이 ID를 사용하여 새 행을 만들고 삽입합니다.
있습니다AuthController
라라벨에서 나는 두개의 테이블을 가지고 있는데 하나는Users
그리고 하나는Users_Information
에 삽입하고 싶습니다.Users_Information
입적 후에
그래서 나는 다음 방법으로 id를 구하고 새로운 행을 삽입하고 그 행의 열 ID를 내가 방금 만든 사용자의 ID로 설정하고 싶습니다.
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return User
*/
protected function create(array $data)
{
return User::create([
'username' => $data['username'] . ' ' . $data['username2'],
'mail' => $data['mail'],
'password' => bcrypt($data['password']),
]);
}
삽입하고 싶습니다.Users_Information
기둥을 세워서id
,current_food
그리고.current_level
제가 조종기를 가지고 있습니다.Users_Information
불렀다UserInformation
, 그냥 전화할까요?UserInformation::create
하지만 내가 어떻게 그 아이드를 얻을 수 있을까요?User::create
?
사용해 봅니다.->id
반환된 개체의 경우 다음과 같습니다.
$id = $this->create($data)->id;
그create()
method가 모델을 반환합니다.
$user = User::create([
'username' => $data['username'] . ' ' . $data['username2'],
'mail' => $data['mail'],
'password' => bcrypt($data['password']),
]);
$userInfo = UserInformation::create([
'user_id' => $user->id,
'current_food' => $food,
'current_level' => $level,
]);
예를 들어, 제가 Employee라는 모델명을 가지고 있는데, 이 모델에 데이터를 삽입하고 싶고 테이블 ID도 받고 싶습니다.그래서 아래의 코드를 통해 이를 쉽게 달성할 수 있습니다.
$employee = new Employee();
$employee->employeeName = 'Something';
$employee->save();
$employee->id;
insertGetId()를 사용합니다. 삽입된 행의 ID를 제공합니다.
$userId = User::insertGetId([
'name' => $request->input('name'),
'email' => $request->input('email'),
'password' => bcrypt($request->input('password')),
]);
https://laravel.com/docs/5.7/queries#inserts
웅변가는 저축 관계를 다루는 좋은 방법을 가지고 있고, 이는 당신의 경우에 사용될 수 있습니다.모델에 직접 접근하지 않고도 관련 모델을 저장할 수 있습니다.물론 먼저 적절한 모형에 관계가 정의되어 있는지 확인해야 합니다.
아래에서 사용자와 사용자의 정보를 생성합니다.나는 당신의 관계의 방법이information
필요에 따라 조정할 수 있습니다.
$user = User::create([
'username' => $data['username'] . ' ' . $data['username2'],
'mail' => $data['mail'],
'password' => bcrypt($data['password']),
])->information()->create([
'current_food' => $current_food,
'current_level' => $current_level
]);
명시적으로 설정하지 않았음을 알려드립니다.user_id
우리는 단순히 당신이 정의한 관계에 접근함으로써 정보를 만들었기 때문입니다. Laravel/Elquent가 당신을 위해!
또한, Excellent를 사용하지 않는 경우에는 다음을 사용할 수 있습니다.insertGetId
:
$id = DB::table('users')->insertGetId(
[ 'name' => 'John Doe', 'email' => 'john@example.com']
);
사용자 정의 ID로 테이블을 설정할 경우 코드에 이를 표시해야 합니다.제 경우, 제 테이블 "Antecedentes"는 사용자 정의 ID "ant_id"를 가지고 있어서 "id"가 작동하지 않고 다음과 같이 "ant_id"를 넣어야 했습니다.
$success = Antecedentes::create($data)->ant_id;
그리고 계속 할 수 있습니다.
언급URL : https://stackoverflow.com/questions/37075148/laravel-get-the-id-of-usercreate-and-insert-new-row-using-that-id
'source' 카테고리의 다른 글
Office 365용 VSTO 추가 기능 (0) | 2023.10.04 |
---|---|
Angularjs - 본문 요소 내부 지시어 가져오기 (0) | 2023.10.04 |
MySQL/MariaDB: 피벗 테이블 뷰로 동적 리포트 생성 (0) | 2023.10.04 |
멀티폼 검증을 위한 저의 요구사항에 맞는 jQuery 플러그인이 있습니까? (0) | 2023.10.04 |
데이터 프레임에서 행 이름 표시 제거 (0) | 2023.10.04 |