라이브러리
[PHP] Result::getGeneratedIds - 생성된 ID 가져오기
Result::getGeneratedIds
`Result` 클래스는 Doctrine ORM의 결과를 나타내는 클래스입니다. `getGeneratedIds` 메소드는 INSERT, UPDATE, DELETE 연산에서 생성된 ID를 반환하는 메소드입니다.
사용 방법
`getGeneratedIds` 메소드는 `Result` 객체의 메소드이므로, 먼저 `Result` 객체를 생성하고 그 객체의 `getGeneratedIds` 메소드를 호출해야 합니다.
예제
#hostingforum.kr
php
// Entity
class User
{
/
* @var int
* @ORMId
* @ORMGeneratedValue
* @ORMColumn(type="integer")
*/
private $id;
// ...
}
// Repository
class UserRepository extends EntityRepository
{
public function saveUser(User $user)
{
$this->_em->persist($user);
$this->_em->flush();
return $user->getId();
}
}
// 사용 예제
$entityManager = $this->getDoctrine()->getManager();
$userRepository = $entityManager->getRepository(User::class);
$user = new User();
$user->setName('John Doe');
$user->setEmail('john.doe@example.com');
$userRepository->saveUser($user);
$result = $entityManager->getRepository(User::class)->find($user->getId());
$generatedIds = $result->getGeneratedIds();
print_r($generatedIds); // Array ( [0] => 1 )
결과
`getGeneratedIds` 메소드는 생성된 ID를 배열로 반환합니다. 예제에서는 `User` 엔티티를 저장한 후, 저장된 ID를 `find` 메소드를 사용하여 조회한 후 `getGeneratedIds` 메소드를 호출하여 생성된 ID를 반환받습니다.
주의
`getGeneratedIds` 메소드는 INSERT, UPDATE, DELETE 연산에서 생성된 ID를 반환합니다. 하지만, UPDATE 연산에서는 ID가 변경되지 않으므로, UPDATE 연산에서 `getGeneratedIds` 메소드를 호출하면 이전 ID가 반환됩니다.
예제 (UPDATE)
#hostingforum.kr
php
// Entity
class User
{
* @var int
* @ORMId
* @ORMGeneratedValue
* @ORMColumn(type="integer")
*/
private $id;
// ...
}
// Repository
class UserRepository extends EntityRepository
{
public function updateUser(User $user)
{
$this->_em->persist($user);
$this->_em->flush();
return $user->getId();
}
}
// 사용 예제
$entityManager = $this->getDoctrine()->getManager();
$userRepository = $entityManager->getRepository(User::class);
$user = $entityManager->getRepository(User::class)->find(1);
$user->setName('Jane Doe');
$userRepository->updateUser($user);
$result = $entityManager->getRepository(User::class)->find($user->getId());
$generatedIds = $result->getGeneratedIds();
print_r($generatedIds); // Array ( [0] => 1 )
결과
UPDATE 연산에서는 이전 ID가 반환됩니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.