1

IM 有一个奇怪的实例,其中通过 CMS 后端创建的页面没有显示在网站上。这仅发生在我新创建的 40 个页面中的一个上。我曾尝试删除页面并重新制作它,但这会产生相同的错误。我也尝试将状态更改为禁用并返回启用,但这也不起作用。

我只是在控制台或其他地方得到一个没有错误的白页。有什么想法吗?

4

1 回答 1

0

您的帖子对程序员需要帮助您的细节有所了解,所以这就是我如何调试它

Magento 使用以下方法查找 CMS 页面。

#File: app/code/core/Mage/Cms/Model/Resource/Page.php
public function checkIdentifier($identifier, $storeId)
{
    $stores = array(Mage_Core_Model_App::ADMIN_STORE_ID, $storeId);
    $select = $this->_getLoadByIdentifierSelect($identifier, $stores, 1);
    $select->reset(Zend_Db_Select::COLUMNS)
        ->columns('cp.page_id')
        ->order('cps.store_id DESC')
        ->limit(1);

    return $this->_getReadAdapter()->fetchOne($select);
}

此代码生成一个 SQL 查询,将 URL 中的标识符与它在cms_page表中可以找到的标识符进行比较。由于某种原因,此查询在您的 Magento 实例中返回零行。添加一些临时调试代码以输出 SQL 查询

    $select->reset(Zend_Db_Select::COLUMNS)
        ->columns('cp.page_id')
        ->order('cps.store_id DESC')
        ->limit(1);

    echo '<pre>';
    echo $select->__toString();
    echo '</pre>';
    exit(__METHOD__ . '::' . __LINE__);
    return $this->_getReadAdapter()->fetchOne($select);

并确定您的查询为什么没有返回任何行。

于 2013-07-15T19:16:11.980 回答