2014-07-15 75 views
0

我剛剛將一個站點移動到運行PHP 5.4.x的新服務器,只能假設是爲什麼即時通訊編譯模板但是當編譯的tpl.php文件生成的時候,無法解決問題是什麼以及想知道是否有人可能知道?警告:非法字符串偏移'category_id' - PHP 5.4 - 聰明到PHP編譯

的TPL是Smarty的和下面是導致錯誤的行:

原始TPL文件的代碼:(smarty的)

{assign var=darin value=$category.category_id} 

編譯錯誤文件中:(從smarty的編譯到PHP緩存的文件)

<?php $this->assign('darin', $this->_tpl_vars['category']['category_id'], false); ?> 

由於其編譯轉換我不知道如何修復smarty函數,因此它編譯正確的PHP代碼,這是在緩存中編譯,這是導致問題...任何想法?正被顯示在前端的編譯文件

錯誤:事先

Warning: Illegal string offset 'category_id' in /websites/am/domain.com.au/var/cache/templates/customer/%%F3^F39^F3960A5D%%view.override.tpl.php on line 42 

謝謝, 詹姆斯

+0

因此,您正在設置一個Smarty變量並希望將該值返回到您的PHP控制器中? Smarty 3我認爲? – Machavity

+0

在5.3上正常工作,但5.4似乎不行。只有注意到剛剛遷移到運行5.4的新雲託管服務,但它只是抓取類別標識(例如「10」)並將其分配給變量darin。 smarty im的版本不能確定我的頭頂。 –

回答

2

它意味着類別不是一個數組。

一次性打印{{$category}} var並查看它的類型。

+0

它需要通過類ID,但做了以下內容:

類別:{$類}

category.category_id:{$ category.category_id}

並得到了 類別:陣列 category.category_id: 39 –

+0

所以:「數組」和:「39」 –

0

你應該做的:

  1. 刪除緩存/編譯的文件,並檢查如果發生錯誤檢查哪些含有$category變量發生錯誤

  2. 。簡單它可以不是一個數組或沒有category_id指數

  3. 如果不使用最新版本的Smarty,你應該考慮升級,與最新版本的測試(它可能是一個錯誤)

如果沒有幫助,請提供$category變量數據。

相關問題