Doctrine 2 + Zend Form - Заполните динамические меню выбора - PullRequest
1 голос
/ 21 сентября 2011

Я создаю форму Zend, в которой есть раскрывающееся меню / меню выбора, заполненное данными из запроса Doctrine 2.

В моем классе репозитория у меня есть следующий запрос в методе с именем selectUser ():

$query = $em->createQuery('SELECT u.id, u.name FROM XX\Entity\Users u ORDER BY u.name ASC');
$users = $query->getResult();

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

$options = array();
foreach ($users as $key => $value) {
   $options[$value['id']] = $value['name'];
}
return $options;

Затем в моем классе формы Zend я пытаюсьзаполнить элемент Select следующим образом:

$id = new Zend_Form_Element_Select('id');
$options = $this->usersRepository->selectUser();
$id->AddMultiOptions($options);

Результатом является ошибка для каждой пользовательской строки, в которой указано «Неопределенный индекс: [имя] в ... UsersRepository.php ...» где [имя]является значением столбца «имя» в каждой строке.

Кто-нибудь видит, что я делаю неправильно или как заполнить меню динамического выбора с помощью Doctrine 2 и Zend Framework?

(Кстати, чтобы запустить метод репозитория, класс формы имеет защищенные свойства, представляющие контейнер Doctrine, менеджер сущностей и репозиторий Users. Если это не считается наилучшей практикой, я буду рад любым предложениям по улучшению mу техники.)

1 Ответ

1 голос
/ 21 сентября 2011

Я думаю, что ваша проблема здесь

$ options [$ value ['id'] = $ value ['name']];

это было бы лучше

$ options [$ value ['id']] = $ value ['name'];

...