$shops = $this->em->getRepository('models\Shop')->findAll();
엔티티로 배열을 지정하지만 배열로 엔티티가 필요합니다.쿼리 결과를 배열 배열로 변환
엔티티를 배열로 변환하는 방법은 무엇입니까?
$shops = $this->em->getRepository('models\Shop')->findAll();
엔티티로 배열을 지정하지만 배열로 엔티티가 필요합니다.쿼리 결과를 배열 배열로 변환
엔티티를 배열로 변환하는 방법은 무엇입니까?
나는 동일한 문제가있었습니다. return get_object_vars($this)
도 내부의 교리 객체/속성을 변환하기 때문에 좋은 해결책이 아닙니다. 일부 연구에서이 클래스를 발견했습니다 : EntitySerializer 엔티티에서 깨끗한 배열이나 JSON을 만들고 불필요한 항목을 제거합니다. 문서는 here입니다. 예를 들어 다음 코드를
$patientProfile = $this->em->getRepository('Entities\Patientprofile')->findOneByuserid('2222222');
$entitySerializer=new Bgy\Doctrine\EntitySerializer($this->em);
$patientProfile=$entitySerializer->toArray($patientProfile);
교리가하자 쿼리를 실행할 때 당신은 당신이 반환되는 결과의 데이터 유형을 변경 수화 모드를 지정할 수 있습니다. 이 경우 Query :: HYDRATE_ARRAY가 필요합니다. 리포지토리에있는 기본 findAll() 메서드에서 지정하지 않습니다. 자신의 DQL을 작성해야합니다.
당신이 배열로 entites의 모음이 필요한 경우 : 당신은 예를 들어 배열로 하나의 엔티티가 필요한 경우
$query = $em->createQuery('SELECT u FROM User u');
$entites = $query->execute(array(), Query::HYDRATE_ARRAY);
// If you don't have parameters in the query, you can use the getResult() shortcut
$query = $em->createQuery('SELECT u FROM User u');
$entities = $query->getResult(Query::HYDRATE_ARRAY);
합니다. 특정 ID를 들어
$query = $em->createQuery('SELECT u FROM User u WHERE u.id = ?1');
$query->setParameter(1, $id);
$entity = $query->getSingleResult(Query::HYDRATE_ARRAY);
이들 방법 Query 및 AbstractQuery에 정의되어있다.
하지만 그것은 추상적 인 EntityRepository-> findAll() 메소드로 사용하는 것을 불가능하게 만듭니다. –
* 엔티티로서의 엔티티 * 엔티티는 어떻게 보이고 배열은 어떻게 생겼을까요? – hakre