我正在将一台机器迁移到我的本地服务器,并且变量和其他功能有些奇怪。例如,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»,这发生在整个代码中。问题是这个代码在生产服务器上工作所以...我错过了什么,我不知道它是什么。
感谢您的帮助!
答案 0 :(得分:3)
PHP抱怨,因为您尚未在代码段中定义变量$key
。
<?php echo $key;
变量$key
与变量$_key
这里的PHP错误级别是通知。通知是最低的PHP错误级别,通常可以在发出通知后继续执行。
我的猜测是您的生产服务器配置为不显示错误
ini_set('display_errors', 0);
开发者模式常量设置为false
$_SERVER['MAGE_IS_DEVELOPER_MODE']
这允许Magento继续通知。如果您检查日志,它可能仍在发布。在您的本地计算机上,显示错误,请在浏览器中查看通知。使用Magento上的开发人员模式将为任何简单错误抛出异常。
在你的代码块之前,也有可能有条件地定义基于数据库状态的$ key,并且它在生产中发生,但不在你的dev配置/数据库中。