我在SocialEngine(*建立在Zend框架v1.9上)中創建了一個模塊,其中包含一個帶有幾個選項的管理表單。SocialEngine/Zend中表單的問題
我與它的問題是,它似乎沒有從數據庫中的字段值刷新頁面後,它顯示我的默認值。
它在我保存後立即顯示正確的值(*但我不確定頁面是否在保存後刷新),但不是刷新後。
控制器/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);
重新填充刷新後的表單,但它不適用於我。 任何想法如何讓它顯示數據庫中的值(*當這些值存在時)而不是默認值?
謝謝,我今天會試試。 – George
您是否介意提供您的一個管理員表格和控制器的完整示例?非常感謝。 – George
正如我所說,我自己新的......大聲笑,havnt做出任何管理形式呢。但是任何形式的過程都是一樣的。我確定$ db = Engine_Api :: _() - > getDbTable('settings','core') - > getAdapter(),將在你的情況下工作......讓我們來檢查一下bro .ocialengine幾乎沒有任何教程。我通過試用瞭解n錯誤。先試試看看它是怎麼回事 – Tanvir