Я пытаюсь создать выпадающий список с помощью вспомогательной функции 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);
Это решение работает хорошо, ноне так приятно, так как мне приходится писать и вызывать две избыточные функции для каждого выпадающего списка:
- пользовательский
dropDown()
в хранилище - преобразование
array_column()
Я бы предпочел использовать стандартный метод findAll()
от Doctrine.
У вас есть более подходящее решение?Спасибо.