【问题标题】:How to get a list of cms pages in Magento?如何在 Magento 中获取 cms 页面列表?
【发布时间】:2013-06-29 11:55:00
【问题描述】:

我要做什么

我创建了一个管理表单,用户需要从下拉列表中选择一个 CMS 页面。

我的尝试

$form->addField('cms_page_id', 'select', array(
'label'     => Mage::helper('custom/data')->__('CMS Page'),
'class'     => 'required-entry',
'required'  => true,
'name'      => 'cms_page_id',
'values'    => Mage::getSingleton('cms/page')->toOptionArray(),
'value'     => $this->getCmsPageId()
));

这个想法是代码从 CMS 模型中获取一个选项数组。但是“toOptionArray”对于“cms/page”模型来说是一个无效的函数。

我的问题

如何在 Magento 的管理表单中获取 CMS 页面的选项数组?

【问题讨论】:

    标签: magento


    【解决方案1】:

    使用您的代码,您正在加载一个新的 cms 页面模型。要获取集合,请使用以下代码,toOptionArray() 至少会返回一些内容:

    Mage::getModel('cms/page')->getCollection()->toOptionArray()
    

    【讨论】:

      【解决方案2】:

      带有链接的 CMS 页面数组

      $cms_arr = Mage::getModel('cms/page')->getCollection()->toOptionArray();   
      $cms_pages[""] = "-Select CMS Page-"; 
      foreach($cms_arr as $cms){ 
          $url = $this->getUrl($cms["value"]); 
          $cms_pages[$url] = $cms["label"]; 
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-07-13
        • 1970-01-01
        • 1970-01-01
        • 2013-09-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多