2011-09-21 128 views
0

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

感谢您的帮助!

回答

3

PHP正在抱怨,因为您尚未在代码段中定义变量$key

<?php echo $key; 

可变$key是从可变$_key

PHP的误差电平不同的是这里的通知。通知是最低的PHP错误级别,通常可以在通知发布后继续执行。

我的猜测是你的生产服务器配置为不显示错误

ini_set('display_errors', 0); 

,以及开发模式常量设置为false

$_SERVER['MAGE_IS_DEVELOPER_MODE'] 

这Magento就可以继续以往的通知。如果你检查你的日志,它可能还在发行。在您的本地计算机上,如果显示错误,请在浏览器中查看通知。 Magento上的开发人员模式会为任何简单的错误抛出异常。

在你的代码块之前,还有可能有条件地定义基于数据库状态的$ key,它在生产环境中发生,但不在你的开发配置/数据库中。

+0

你说得对,艾伦。此时开发者模式处于活动状态,这是抛出异常。那么,至少我现在可以开始研究它了。谢谢! – PauGNU