我正在将一台机器迁移到我的本地服务器上,而变量和其他函数有一些奇怪的地方。例如,Magento显示以下错误:
Notice: Undefined variable: key in [...]template/catalog/product/view/attributes.phtml如果我转到该函数,我会看到:
<?php foreach($this->getAvailableOrders() as $_key=>$_order): ?>
<?php echo $key; if ($_order != 'Relevancia') : // Remove "Relevancia" from the sort option list ?>
<option value="<?php echo $_key; // echo $this->getOrderUrl($_key, 'asc') ?>"<?php if($this->isOrderCurrent($_key)): ?> selected="selected"<?php endif; ?>>
<?php echo $this->__($_order) ?>
</option>
<?php endif; ?>
<?php endforeach; ?>似乎magento无法将«$key»识别为«$_key»,而这在整个代码中都会发生。问题是这段代码可以在生产服务器上运行,所以...我漏掉了什么,我不知道是什么。
谢谢你的帮忙!
发布于 2011-09-21 22:54:49
PHP出错是因为您没有在代码片段中定义变量$key。
<?php echo $key;变量$_key与变量$key不同
注意这里的PHP错误级别。通知是PHP的最低错误级别,通常可以在发出通知后继续执行。
我猜您的生产服务器被配置为不显示错误
ini_set('display_errors', 0);并将developer模式常量设置为false
$_SERVER['MAGE_IS_DEVELOPER_MODE']这允许Magento在通知之后继续。如果你检查你的日志,它可能还在发布。在本地计算机上,如果显示错误,请在浏览器中查看通知。在开发者模式下,Magento会为任何简单的错误抛出一个异常。
也有可能在编写代码块之前,已经根据数据库状态有条件地定义了$key,这种情况发生在生产环境中,而不是开发人员配置/数据库中。
https://stackoverflow.com/questions/7501395
复制相似问题