0

假设在\AW\Blog\Model\post.php 中有一个函数。它里面有一个函数。

public function PreNext($type){
    $id = $this->_data['post_id'];
    $blog = Mage::getResourceModel('blog/post_collection');

        $blog->getSelect()->where('post_id>?',$id);

    return $blog->getFirstItem();
}

为什么它写$this->_data['post_id'];我可以用另一个写它。magento中的函数中的四行是什么意思?非常感谢。

post.php

class AW_Blog_Model_Post extends Mage_Core_Model_Abstract{

    const NOROUTE_PAGE_ID = 'no-route';

    protected function _construct(){
        $this->_init('blog/post');
    }

    public function load($id, $field=null){
        return $post = parent::load($id, $field);
    }

    public function noRoutePage(){
        $this->setData($this->load(self::NOROUTE_PAGE_ID, $this->getIdFieldName()));
        return $this;
    }

    public function getShortContent(){
        $content = $this->getData('short_content');
        if(Mage::getStoreConfig(AW_Blog_Helper_Config::XML_BLOG_PARSE_CMS)){
            $processor = Mage::getModel('core/email_template_filter');
            $content = $processor->filter($content);
        }
        return $content;
    }

    public function getPostContent(){
        $content = $this->getData('post_content');
        if(Mage::getStoreConfig(AW_Blog_Helper_Config::XML_BLOG_PARSE_CMS)){
            $processor = Mage::getModel('core/email_template_filter');
            $content = $processor->filter($content);
        }
        return $content;
    }

    public function loadByIdentifier($v) {
        return $this->load($v, 'identifier');
    }
}
4

1 回答 1

1

这是自定义扩展的代码,所以只有拥有这个扩展的人才能知道,这个post.php文件包含什么,以及是否可以使用$this->_data['post_id'].

如果扩展使用标准的 Magento Getters/Setters,也许$this->getPostId()也可以工作。

其余的加载一个post_id大于的记录集合$this->_data['post_id'],但只返回找到的第一条记录。

更新

您发布的课程扩展了

Mage_Core_Model_Abstract

这反过来又延伸

Varien_Object

在标准 Magento OOB 中。

该类Varien_Object定义了我所说的标准 getter/setter,所以是的,您也可以使用它$this->getPostId()来获取值。

要了解这些 getter/setter 是如何工作的,我建议您查看Varien_Object并阅读有关 PHP魔术方法__call()的信息,例如__get()__set()

于 2012-09-05T07:18:33.350 回答