Magento无法识别变量($ variable $ _variable)

时间:2011-09-21 14:18:56

标签: magento

我正在将一台机器迁移到我的本地服务器,并且变量和其他功能有些奇怪。例如,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»,这发生在整个代码中。问题是这个代码在生产服务器上工作所以...我错过了什么,我不知道它是什么。

感谢您的帮助!

1 个答案:

答案 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配置/数据库中。