교리 2로 마지막 삽입 ID를 얻습니까?
교리 2 ORM으로 마지막 삽입 ID를 얻으려면 어떻게해야합니까? 나는 이것을 교리 문서에서 찾지 못했습니다. 이것이 가능할까요?
마지막 삽입 ID를 얻기 위해 플러시 후 이것을 사용해야했습니다.
$em->persist($user);
$em->flush();
$user->getId();
엔티티 관리자의 persist 메소드를 호출 한 후 ID에 액세스 할 수 있습니다.
$widgetEntity = new WidgetEntity();
$entityManager->persist($widgetEntity);
$entityManager->flush();
$widgetEntity->getId();
당신은 할 이 ID를 얻기 위해 세척해야합니다.
구문 오류 수정 : $ entityManager-> flush () 호출 후 세미콜론이 추가되었습니다.
여기에 표시된 것처럼 엔티티가 아닌 Native SQL을 사용하는 경우 아래와 같이 마지막으로 삽입 된 ID를 가져올 수 있습니다.
$entityManager->getConnection()->lastInsertId()
PostgreSQL 과 같은 시퀀스가있는 데이터베이스의 경우 시퀀스 이름을 lastInsertId
메서드 의 첫 번째 매개 변수로 제공 할 수 있습니다 .
$entityManager->getConnection()->lastInsertId($seqName = 'my_sequence')
자세한 내용은 여기 와 여기 에있는 GitHub의 코드를 참조 하십시오 .
flush () 호출은 잠재적으로 많은 새로운 엔티티를 추가 할 수 있으므로 실제로 "lastInsertId"라는 개념이 없습니다. 그러나 Doctrine은 ID 필드가 생성 될 때마다 채워 지므로 flush를 호출 한 후 id 필드에 액세스하면 항상 새로 "지속 된"엔티티의 ID가 포함됩니다.
질문에 답하기에는 조금 늦었습니다. 그러나,
MySQL 데이터베이스 인 경우
가 데이터베이스와 테이블 정의에 정의되어 $doctrine_record_object->id
있으면 작동합니다 AUTO_INCREMENT
.
참고 URL : https://stackoverflow.com/questions/3509350/get-the-last-insert-id-with-doctrine-2
'IT TIP' 카테고리의 다른 글
속성 텍스트 중심 정렬 (0) | 2020.10.30 |
---|---|
"noreturn"함수가 반환되는 이유는 무엇입니까? (0) | 2020.10.30 |
Facebook 그래프 API를 사용하여 사용자 프로필 사진을 표시하려면 어떻게해야합니까? (0) | 2020.10.30 |
Enter 키를 눌렀을 때 실행되는 WPF TextBox 명령 (0) | 2020.10.30 |
git 얕은 클론 (clone --depth)이 원격 분기를 놓친다 (0) | 2020.10.30 |