라이브러리

[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가 반환됩니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 272 페이지

검색

게시물 검색