2015-01-09 82 views
2

我將所有的pimcore文件加上數據庫從服務器移動到本地主機,並在website/var/config/system.xml中進行了必要的更改。 管理員是工作,但前端處是否顯示錯誤:將pimcore從服務器移動到本地時發生致命錯誤

Fatal error: Call to a member function getFielddefinitions() on a non-object in /var/www/html/pimcore/pimcore/models/Object/Localizedfield/Resource.php on line 179 

這行代碼產生錯誤:

$this->model->getClass()->getFielddefinition("localizedfields")->getFielddefinitions() 

的系統要求和文件權限是否正確。

爲了測試目的,我在本地系統上安裝了一個新的pimcore項目,它的工作完美。

我可以在我的數據庫中做任何修改嗎? 如何在本地成功運行我的項目?

回答

2

如果已有對象使用該類,則會發生此錯誤。

解決方案

  1. 登錄到後端以管理員。
  2. 轉到Settings > Object > Classes
  3. 對於每一個在左樹類的,點擊它們,然後在右下角命中保存。 (如果無法保存剛剛創建通過按下按鈕一個新的類添加新的類

現在嘗試加載frondend。它會工作。

0

您可以:

  • 設置<調試 config.xml中/調試> - 這應該顯示錯誤

  • 如果它沒有幫助,請檢查Apache和/或php錯誤日誌。

+0

之前更換DEFINER = prod-user @%與DEFINER = local-user @%不工作...........!調試也是1 –

0

我們需要看到實際的錯誤(如維諾德已經指出的)。

我可以推測,雖然:

是數據庫憑據(又名DB用戶名)相同? 如果不是,您可能需要從數據庫轉儲中刪除SECURITY DEFINER。 請參閱:Remove DEFINER clause from MySQL Dumps提示如何做到這一點。

錯誤的另一個來源可能是緩存。您是否使用默認的基於文件的Pimcore緩存? 如果是這種情況,請嘗試從網站/ var/cache和網站/ var/tmp中刪除所有文件。

讓我們知道結果如何。

+0

這並沒有提供問題的答案。要批評或要求作者澄清,在他們的帖子下留下評論 - 你總是可以評論你自己的帖子,一旦你有足夠的[聲譽](http://stackoverflow.com/help/whats-reputation),你會能夠[評論任何帖子](http://stackoverflow.com/help/privileges/comment)。 –

+1

@StephenMuecke這是一個臨時答案。對於upvote來說不夠好,但它提出瞭解決問題的辦法。 – chrylis

1

Pimcore使用數據庫視圖來存儲對象數據。在導出數據庫時,在視圖定義中也會有SECURITY DEFINER。

/*!50013 DEFINER=`prod-user`@`%` SQL SECURITY DEFINER */

  1. OPTION:Vinot VT溶液應該工作 可以acchive相同與運行命令:

php pimcore/cli/console.php deployment:classes-rebuild

  • OPTION:在本地env'prod-user'上使用相同的數據庫用戶名,如果您將導入prod數據庫很有用

  • 選項:導入數據庫

  • +0

    感謝您的回答:) –

    相關問題