2011-08-16 78 views
3

我正在學習symfony2,並且在一個包中創建了一些Doctrine實體,我想移動它們。Symfony2 - 如何刪除/移動實體?

然而,在移動之後,並改變它們的任何實例被引用,試圖運行我的應用程序時,我得到的錯誤。

我把他們搬回來,一切都很好。

現在我只是tyring完全地消除它們,但同樣,我這樣做時會出錯。

任何幫助完全刪除實體?

+0

提供實際的錯誤將會有所幫助。 – Tjorriemorrie

回答

3

我確實做到了巴勃羅先生也做了同樣的事情,但對於一個包:我搬到一個包(重命名)和修改的所有調用它。

我有同樣的錯誤:

ErrorException: Catchable Fatal Error: Object of class __PHP_Incomplete_Class could not be converted to string in /Volumes/Data/home/timi/Sites/symfony2/vendor/symfony/src/Symfony/Component/Security/Core/Authentication/Token/AbstractToken.php line 70 
in /Volumes/Data/home/timi/Sites/symfony2/vendor/symfony/src/Symfony/Component/HttpKernel/Debug/ErrorHandler.php line 65 
at ErrorHandler->handle() in /Volumes/Data/home/timi/Sites/symfony2/vendor/symfony/src/Symfony/Component/Security/Core/Authentication/Token/AbstractToken.php line 70 
at AbstractToken->getUsername() in /Volumes/Data/home/timi/Sites/symfony2/vendor/symfony/src/Symfony/Bundle/SecurityBundle/DataCollector/SecurityDataCollector.php line 56 
at SecurityDataCollector->collect() in /Volumes/Data/home/timi/Sites/symfony2/vendor/symfony/src/Symfony/Component/HttpKernel/Profiler/Profiler.php line 174 
at Profiler->collect() in /Volumes/Data/home/timi/Sites/symfony2/vendor/symfony/src/Symfony/Component/HttpKernel/EventListener/ProfilerListener.php line 90 
at ProfilerListener->onKernelResponse() 
at call_user_func() in /Volumes/Data/home/timi/Sites/symfony2/vendor/symfony/src/Symfony/Bundle/FrameworkBundle/Debug/TraceableEventDispatcher.php line 82 
at TraceableEventDispatcher->doDispatch() in /Volumes/Data/home/timi/Sites/symfony2/app/cache/dev/classes.php line 3678 
at EventDispatcher->dispatch() in /Volumes/Data/home/timi/Sites/symfony2/app/cache/dev/classes.php line 4754 
at ContainerAwareEventDispatcher->dispatch() in /Volumes/Data/home/timi/Sites/symfony2/app/cache/dev/classes.php line 3904 
at HttpKernel->filterResponse() in /Volumes/Data/home/timi/Sites/symfony2/app/cache/dev/classes.php line 3896 
at HttpKernel->handleRaw() in /Volumes/Data/home/timi/Sites/symfony2/app/cache/dev/classes.php line 3846 
at HttpKernel->handle() in /Volumes/Data/home/timi/Sites/symfony2/app/cache/dev/classes.php line 4791 
at HttpKernel->handle() in /Volumes/Data/home/timi/Sites/symfony2/app/bootstrap.php.cache line 547 
at Kernel->handle() in /Volumes/Data/home/timi/Sites/symfony2/web/app_dev.php line 20 

一些幫助將非常歡迎:)

編輯:

嗯,我解決了這個問題,亞當·斯泰西聽說過得好: )

在更改任何內容之前,我使用FOSUserBundle防火牆登錄了該網站。 通過更改軟件包的名稱,它欺騙了防火牆,並將其卡在./vendor/symfony/src/Symfony/Component/Security/Core/Authentication/Token/AbstractToken.php的第70行。 以下是函數:

public function getUsername() 
{ 
    if ($this->user instanceof UserInterface) { 
     return $this->user->getUsername(); 
    } 

    return (string) $this->user; 
} 

所以我註釋掉線return (string) $this->user;,重新加載網頁,退出,恢復比註釋。瞧!

0

你得到了什麼樣的錯誤?

確保您:

  1. 清除緩存
  2. 重建數據庫
  3. 沒有與任何實體關係
  4. 不具有基於實體的任何代碼
+0

清除文件系統和命令行中的每個可能的緩存。剛剛刪除了我的數據庫中的所有數據,在兩個包中重建實體。仍然沒有運氣。 –

+0

錯誤說的是什麼? – Inoryy

+0

ErrorException:可捕獲的致命錯誤:類__PHP_Incomplete_Class的對象無法轉換爲C:\ xampp \ htdocs \ Symfony \ vendor \ symfony \ src \ Symfony \ Component \ Security \ Core \ Authentication \ Token \ AbstractToken.php中的字符串。 –

0

就像Inori提到的你試過重建你的實體嗎?

如果不是從CLI試試這個:

php app/console doctrine:generate:entities Acme 
php app/console doctrine:schema:update --force 

更換「Acme公司」,不管你在你的包已經使用您的姓名,公司名稱或。

您可能需要做的另一件事是刪除您已經使用實體的任何實例。

例如,你可能有看起來像這樣的控制器的一些實體:

use Acme\BundleName\Entity\SomeEntity; 
use Acme\BundleName\Entity\AnotherEntity; 

他們將需要被刪除。

如果你有特別的錯誤,將出現的讓我知道他們是什麼,我會盡量幫助您進一步的詳細信息。

+0

我嘗試了所有這一切。我現在剛剛刪除了我創建的第二個包,並剝離了最後提到的Entity php文件。所以現在我的應用程序應該只是一個包含基本表單的頁面。它仍然不會加載。 –

+0

好的,刪除了我所有的bundle和內核引用。生成一個新的bundle,在瀏覽器中用/ hello/name和BAM查看它。破碎。與之前打印的錯誤相同。我的整個應用程序已損壞:/ –

0

我聽說這有時也可能與會話有關。你使用任何捆綁認證或類似的東西?

在php.ini文件你有你的設置爲:

session.auto_start = Off 

這可能是路要走,但值得一去。讓我知道。

另行註釋。您的服務器設置是否通過了可以通過CLI運行的app/check.php文件中的檢查?