Заполните значения для флажка при редактировании в Zend Framework - PullRequest
0 голосов
/ 19 ноября 2010

Я пытаюсь ввести значения в флажок. Я хочу установить флажок, если в базе данных хранится значение.

Это мой код в форме:

$form ['test_1'] = new Zend_Form_Element_Checkbox('test_1');
$form['test_1']->setLabel('test1')->setCheckedValue('1');

$form ['test_2'] = new Zend_Form_Element_Checkbox('test_2');
$form['test_2']->setLabel('test2')->setCheckedValue('2');

Если в базе данных есть значение 1, я хочу установить первый флажок, а если его значение 2, необходимо установить второй флажок.

Что мне нужно сделать в контроллере.

Может ли кто-нибудь помочь мне в этом вопросе.

1 Ответ

1 голос
/ 19 ноября 2010

Самый простой способ - получить значения из базы данных в виде массива, который отображается на элементы ввода формы, например, вернуть строку как

array('test_1' => 'value of checkbox', 'test_2' => 'value of checkbox');

Затем вы можете просто позвонить $form->populate($values) и позволить Zend_Form выполнить настройку, например, в вашем контроллере сделать

public function showFormAction()
{
    $form = $this->getHelper('forms')->get('MyForm');
    $data = $this->getHelper('dbGateway')->get('SomeTable');
    $form->populate($data->getFormData());
    $this->view->form = $form;
}

Примечание: указанные выше помощники не существуют. Они просто иллюстрируют, как вы могли бы подойти к этому. Имейте в виду, что вам нужны тонкие контроллеры и толстые модели , поэтому вы не должны создавать форму внутри контроллера и не ставить там никаких запросов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...