2011-09-21 74 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