我正在将一台机器迁移到我的本地服务器,变量和其他函数有一些奇怪的东西。例如,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»,这在整个代码中都会发生。问题是,这段代码是在生产服务器上工作的,所以…我错过了一些东西,我不知道是什么。
谢谢你的帮助!
PHP正在抱怨,因为您没有在代码片段中定义变量$key
。
<?php echo $key;
变量$key
与变量$_key
不同
我猜是您的生产服务器配置为不显示错误
ini_set('display_errors', 0);
和显影模式常数设置为false
$_SERVER['MAGE_IS_DEVELOPER_MODE']
这允许Magento继续通过通知。如果您查看日志,它可能仍在发出。在本地机器上,如果出现显示错误,请在浏览器中看到通知。在开发者模式下,Magento会为任何简单的错误抛出异常。
也有可能在你的代码块之前,有一些根据数据库状态有条件地定义$key的东西,它发生在生产中,但不是在你的开发配置/数据库中。