Magento管理员编辑表单字段-自定义模型字段

BENN1TH

想要添加要以自定义magento管理表单呈现的自定义模型。只是似乎无法获得源模型来呈现任何选项。做到这一点应该是一个简单的任务,但也许我错过了一些东西。真的无法在Google上找到任何东西,这主要与系统/配置源模型示例有关。请参见下面的代码

模型文件(My / Module / Model / MyModel.php)

<?php
class My_Module_Model_MyModel extends Mage_Core_Model_Abstract
{
 static public function getOptionArray()
{

    $allow = array(
       array('value' => '1', 'label' => 'Enable'),
       array('value' => '0', 'label' => 'Disable'),
   );

   return $allow;
}
}

和我的表单选项卡文件-选项卡显示有多选字段,但空白(我/模块/块/管理html /模块/编辑/标签/Data.php)

<?php

class My_Module_Block_Adminhtml_Module_Edit_Tab_Data extends Mage_Adminhtml_Block_Widget_Form
{

protected function _prepareForm(){ 


    $form = new Varien_Data_Form();
    $this->setForm($form);
    $fieldset = $form->addFieldset('module_form', array('legend'=>Mage::helper('module')->__('Module Information')));
    $object = Mage::getModel('module/module')->load( $this->getRequest()->getParam('module_id') );


    echo $object;



    $fieldset->addField('module_enabled', 'multiselect', array(
      'label'     => Mage::helper('module')->__('Allowed Module'),
      'class'     => 'required-entry',
      'required'  => true,
      'name'      => 'module_enabled',
      'source_model' => 'My_Module_Model_MyModel',
      'after_element_html' => '<small>Select Enable to Allow</small>',
      'tabindex' => 1
    ));


    if ( Mage::getSingleton('adminhtml/session')->getModuleData() )
    {
          $form->setValues(Mage::getSingleton('adminhtml/session')->getModuleData());
        Mage::getSingleton('adminhtml/session')->setModuleData(null);
    } elseif ( Mage::registry('module_data') ) {
        $form->setValues(Mage::registry('module_data')->getData());
    }
    return parent::_prepareForm();
   }


  }

因此,我还有其他字段,所有保存数据的选项卡等,但是无法使用multiselect字段内的自定义模型获取要渲染的值。

任何帮助都是极好的!!

干杯

==========编辑===========

更新了MyModel.php以在集合中获取foreach(例如CMS页)

<?php
class My_Module_Model_MyModel
{
 public function toOptionArray($withEmpty = false)
 {
    $options = array();
    $cms_pages = Mage::getModel('cms/page')->getCollection();
    foreach ($cms_pages as $value) {
        $data = $value->getData();
        $options[] = array(
            'label' => ''.$data['title'].'('.$data['identifier'].')',
            'value' => ''.$data['identifier'].''
        );
    }

    if ($withEmpty) {
        array_unshift($options, array('value'=>'', 'label'=>Mage::helper('module')->__('-- Please Select --')));
    }

    return $options;
}

在My / Module / Block / Adminhtml / Module / Edit / Tab / Data.php中,我刚刚删除了“ source_model”并将其替换为

'values' => Mage::getModel('module/mymodel')->toOptionArray(),

============另一个编辑===================

只是要添加,还存在多选择值无法在编辑页面上的刷新/保存上保存/更新多选择字段的问题。为了使此工作正常进行,我在saveAction(或用于保存表单数据的动作名称)下编辑了管理员控制器。请参阅下面我在控制器中针对My / Module / controllers / Adminhtml / ModuleController.php中的admin / backend的saveAction

 public function saveAction() {
    $model = Mage::getModel('module/module');
    if ($data = $this->getRequest()->getPost()) {


        $model = Mage::getModel('module/module');
        $model->setData($data)
            ->setModuleId($this->getRequest()->getParam('module_id'));

        try {
            if ($model->getCreatedTime() == NULL || $model->getUpdateTime() == NULL) {
                $model->setCreatedTime(now())->setUpdateTime(now());
            } else {
                $model->setUpdateTime(now());
            }


            $ModuleEnabled = $this->getRequest()->getParam('module_enabled');
            if (is_array($ModuleEnabled))
            {
            $ModuleEnabledSave = implode(',',$this->getRequest()->getParam('module_enabled')); 
            }
            $model->setModuleEnabled($ModuleEnabledSave);

            //save form data/values per field
            $model->save();


            Mage::getSingleton('adminhtml/session')->addSuccess(Mage::helper('module')->__('Item was successfully saved'));
            Mage::getSingleton('adminhtml/session')->setFormData(false);

            if ($this->getRequest()->getParam('back')) {
                $this->_redirect('*/*/edit', array('module_id' => $model->getModuleId()));
                return;
            }
            $this->_redirect('*/*/');
            return;
        } catch (Exception $e) {
            Mage::getSingleton('adminhtml/session')->addError($e->getMessage());
            Mage::getSingleton('adminhtml/session')->setFormData($data);
            $this->_redirect('*/*/edit', array('module_id' => $this->getRequest()->getParam('module_id')));
            return;
        }
    }
    Mage::getSingleton('adminhtml/session')->addError(Mage::helper('module')->__('Unable to find item to save'));
    $this->_redirect('*/*/');
}

这会将内爆数组(即2、3、6、23、28)保存到数据库值中,并在刷新/更新/保存时在相应选项卡上呈现选定的multiselect字段

希望这对任何人都有帮助,并感谢Reindex的快速响应

骷髅王

看起来源模型中的方法名称不正确。另外,您可能不需要扩展Mage_Core_Model_Abstract源模型。

试试这个:

<?php
class My_Module_Model_MyModel
{
    public function toOptionArray()
    {
        return array(
            array('value' => '1', 'label' => Mage::helper('module')->__('Enable')),
            array('value' => '0', 'label' => Mage::helper('module')->__('Disable')),
        );
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Magento管理员中点击自定义标签后,无效的配置字段后端模型

来自分类Dev

Django表单自定义模型表单字段标签

来自分类Dev

为自定义用户模型向Django管理员添加字段

来自分类Dev

Django创建自定义模型字段

来自分类Dev

自定义模型字段的迁移问题

来自分类Dev

解释自定义模型字段机制

来自分类Dev

Sonata管理员自定义列表字段模板包含指向管理员编辑对象的链接

来自分类Dev

Sonata管理员自定义列表字段模板包含指向管理员编辑对象的链接

来自分类Dev

wordpress允许管理员使用自定义字段编辑用户个人资料

来自分类Dev

Django中外键模型字段的自定义表单字段

来自分类Dev

自定义Django表单字段

来自分类Dev

奏鸣曲管理员表单字段在同一行

来自分类Dev

如何在WooCommerce管理员单笔订单中显示自定义结帐账单字段

来自分类Dev

Magento:通过自定义字段获取我的模型的记录

来自分类Dev

Django管理员更改列表中的自定义list_editable字段,该字段不直接与模型字段相对应

来自分类Dev

在magento管理员中,如何在添加产品页面中创建自定义字段

来自分类Dev

MVC 4模型字段自定义授权

来自分类Dev

Django:自定义用户模型的返回字段

来自分类Dev

Django模型中的自定义ID字段

来自分类Dev

MVC 4模型字段自定义授权

来自分类Dev

自定义模型字段以进行序列化

来自分类Dev

Laravel 自定义枢轴模型缺少字段

来自分类Dev

Magento,在管理员中创建/编辑产品时预完成自定义选项

来自分类Dev

magento管理员-自定义添加新客户表单

来自分类Dev

特定模型的Django管理员自定义模板

来自分类Dev

特定模型的Django管理员自定义模板

来自分类Dev

自定义字段定义

来自分类Dev

夹层自定义字段添加到管理员

来自分类Dev

奏鸣曲管理员自定义列表字段(不是来自实体)

Related 相关文章

  1. 1

    在Magento管理员中点击自定义标签后,无效的配置字段后端模型

  2. 2

    Django表单自定义模型表单字段标签

  3. 3

    为自定义用户模型向Django管理员添加字段

  4. 4

    Django创建自定义模型字段

  5. 5

    自定义模型字段的迁移问题

  6. 6

    解释自定义模型字段机制

  7. 7

    Sonata管理员自定义列表字段模板包含指向管理员编辑对象的链接

  8. 8

    Sonata管理员自定义列表字段模板包含指向管理员编辑对象的链接

  9. 9

    wordpress允许管理员使用自定义字段编辑用户个人资料

  10. 10

    Django中外键模型字段的自定义表单字段

  11. 11

    自定义Django表单字段

  12. 12

    奏鸣曲管理员表单字段在同一行

  13. 13

    如何在WooCommerce管理员单笔订单中显示自定义结帐账单字段

  14. 14

    Magento:通过自定义字段获取我的模型的记录

  15. 15

    Django管理员更改列表中的自定义list_editable字段,该字段不直接与模型字段相对应

  16. 16

    在magento管理员中,如何在添加产品页面中创建自定义字段

  17. 17

    MVC 4模型字段自定义授权

  18. 18

    Django:自定义用户模型的返回字段

  19. 19

    Django模型中的自定义ID字段

  20. 20

    MVC 4模型字段自定义授权

  21. 21

    自定义模型字段以进行序列化

  22. 22

    Laravel 自定义枢轴模型缺少字段

  23. 23

    Magento,在管理员中创建/编辑产品时预完成自定义选项

  24. 24

    magento管理员-自定义添加新客户表单

  25. 25

    特定模型的Django管理员自定义模板

  26. 26

    特定模型的Django管理员自定义模板

  27. 27

    自定义字段定义

  28. 28

    夹层自定义字段添加到管理员

  29. 29

    奏鸣曲管理员自定义列表字段(不是来自实体)

热门标签

归档