Где вы создаете экземпляр формы - она в контроллере?Вместо того, чтобы форма вызывала действие на контроллере для динамического получения значений, вы должны смотреть на установку значений в форме после ее создания.
Быстрый и грязный способ сделать это - получить значения в контроллере и присвоить его элементу с помощью:
$values = $db->query('query');
$element = $form->getElement('dynamicSelect');
$element->setValue($values);
Конечно, имея запросы БД к таблице в вашемКонтроллер не совсем лучшая практика ... По предложению Филистина я использую класс конструктора форм для динамического построения форм из моих моделей.У меня есть мапперы для каждой модели, и я передаю маппер в класс построителя форм, чтобы он мог динамически заполнять мои элементы выбора.