doctrine2 - Конвертировать Doctrine model в массив


0

Как преобразовать в массив объекты, который получены через getRepository(entity)->findAll(); Нагуглил что это делается через Hydrator, но что то не получается

Источник
  •  41
  •  1
  • 11 янв 2017 2017-01-11 17:27:37

1 ответ

0

Вообще есть несколько вариантов. Ты можешь в репозитории объявить свой собственный метод который будет возвращать данные в виде масива. Например

        use DoctrineORMEntityRepository;

    /**
     * %Название%Repository
     */
    class %Название%Repository extends EntityRepository{

    public function FindAllArray($val){
       return $this->createQueryBuilder(s)
               ->where(id = :val)
               ->setParameter(val, $val)
               ->getQuery()
               ->getArrayresult();
      }
    }

Воторой вариант прсто сделать запрос к базе и опять же вызвать метод getArrayresult();

$data = $this->getDoctrine()->getManager()->getRepository(Путь к репозиторию)->createQueryBuilder(q)->where(id = :id)->setParameter(id,$idVal)->getQuery()->getArrayresult();

Ещё есть пару вариантов но я полагаю что этих должно быть достаточно. Вот ссылка на документацию к QueryBuilder