Подумайте об этом с абстрактного уровня.
- У вас есть одна форма
- Форма нуждается в данных от внешнего
Так в конечном счете, ваша форма имеет Dependency
. Поскольку мы узнали из official docs, существует два типа Dependency-Injection
aka DI
. Сеттер-инжекция и инсталляция конструктора. Лично я использовать один или другой в тех случаях (!):
Конструктор-Injection если зависимость является абсолютным требованием для функциональности работать
сеттер-Injection, если зависимости более или менее необязательно продлить уже рабочий материал
В случае вашей формы это требуемая зависимость (потому что без него нет заполненного элемента выбора), поэтому я дам вам пример для инсталляции конструктора.
Некоторые действия контроллера:
$sl = $this->getServiceLocator();
$dbA = $sl->get('Zend\Db\Adapter\Adapter');
$form = new SomeForm($dbA);
Это все для формы. Население теперь происходит внутри вашей Формы. Это всего лишь пример, и может потребоваться тонкая настройка, но вы получите идею:
class SomeForm extends \Zend\Form
{
public function __construct(\Zend\Db\Adapter\Adapter $dbA)
{
parent::__construct('my-form-name');
// Create all the form elements and stuff
// Get Population data
$popData = array();
$result = $dbA->query('SELECT id, title FROM Categories', $dbA::QUERY_MODE_EXECUTE)->toArray();
foreach ($result as $cat) {
$popData[$cat['id'] = $cat['title'];
}
$selectElement = $this->getElement('select-element-name');
$selectElement->setValueOptions($popData);
}
}
Важная: Я понятия не имею, О Zend\Db
приведенный выше код только для того, как я думаю, что это будет работать движение по the docs! Это та часть, которая, вероятно, потребует некоторой оптимизации. Но в целом вы получите представление о том, как это делается.
нет это только отображение статического выпадающий, но я хочу, динамический, которые получают значение из базы данных и отображения Это. –
Что вы пробовали? Я не вижу никакого кода, связанного с БД, в вашем вопросе и без переменных '$ options'. –
hey bram, если у вас есть предложения для получения динамического выпадающего списка с первого шага на последний шаг, поэтому мне помогите .. Я новичок в zf2 .. –