Как скормить выпадающий список CodeIgniter из Doctrine? - PullRequest
0 голосов
/ 13 февраля 2019

Я пытаюсь создать выпадающий список с помощью вспомогательной функции CI3 form_dropdown(), которая будет принимать данные Doctrine2 в качестве входных данных.

My LocationRepository, возвращает мне список городов здесь:

public function dropDown(){
    $qb = $this->getEntityManager()->createQueryBuilder();
    $qb->select('l.locationId, l.label')
        ->from('Location', 'l')
        ->orderBy('l.label', 'ASC');
    return $qb->getQuery()->getArrayResult();
}

Мой контроллер отправляет его на мой взгляд:

$locations = $this->locationRepository->dropDown();

И мой взгляд отображает выпадающий список следующим образом:

$data = array(
                'name' => 'location',
                'id' => 'location',
                'class' => getErrorClass('location')
            );

            $x = array_column($locations, 'label', 'locationId');
            echo form_dropdown($data, $x);

Это решение работает хорошо, ноне так приятно, так как мне приходится писать и вызывать две избыточные функции для каждого выпадающего списка:

  1. пользовательский dropDown() в хранилище
  2. преобразование array_column()

Я бы предпочел использовать стандартный метод findAll() от Doctrine.

У вас есть более подходящее решение?Спасибо.

...