Я создал модуль в SocialEngine (*который построен на Zend framework v1.9), который содержит форму администратора с несколькими параметрами.
Проблема, с которой я столкнулся, заключается в том, что после обновления страницы мне не удается получить значения полей из базы данных, и она показывает мне значения по умолчанию.
Он показывает правильные значения сразу после сохранения (* но я не уверен, обновляется ли страница после сохранения), но не после обновления.
контроллер /application/modules/Mymodule/controllers/AdminSomesettingsController.php :
class Mymodule_AdminSomesettingsController extends Core_Controller_Action_Admin
{
public function indexAction()
{
$this->view->form = $form = new Mymodule_Form_Admin_Someform();
$settings = Engine_Api::_()->getApi('settings', 'core');
if(!$form->isValid($settings->mymodule))
{ return $form->populate($settings->mymodule); }
if( !$this->getRequest()->isPost() ) { return; }
if( !$form->isValid($this->getRequest()->getPost()) ) { return; }
$db = Engine_Api::_()->getDbTable('settings','core')->getAdapter();
$db->beginTransaction();
try {
$values = $form->getValues();
$settings->mymodule = $values;
$db->commit();
} catch( Exception $e ) {
$db->rollback();
throw $e;
}
$form->saveValues();
$form->addNotice('Your changes have been saved.');
}
}
форма /application/modules/Mymodule/Form/Admin/Someform.php :
class Mymodule_Form_Admin_Someform extends Engine_Form
{
public function init()
{
$this
->setTitle('My Settings')
->setDescription('Settings');
$this->addElement('Radio', 'some_setting', array(
'label' => 'Some Setting',
'description' => '',
'multiOptions' => array(
0 => 'Option One',
1 => 'Option Two',
2 => 'Option Three',
),
'value' => 1,
'escape' => false,
));
// Add submit button
$this->addElement('Button', 'submit', array(
'label' => 'Save Changes',
'type' => 'submit',
'ignore' => true
));
}
public function saveValues()
{
}
}
Я проверил с другими плагинами, и мне кажется, что $form->populate($settings->mymodule);
повторно заполняет форму после обновления, но у меня это не работает. Есть идеи, как заставить его отображать значения из базы данных (*когда эти значения существуют) вместо значений по умолчанию?