开发者

Symfony2 - How to delete/move an entity?

I am learning symfony2 and atfer creating some Doctrine Entities in a bundle, I wanted to move them.

However, after moving, and changing any instances of them being referenced, I was getting errors when trying to run my application.

I moved them back, and everythin开发者_如何学Gog was fine.

Now I am just tyring to remove them completly, but again, I get errors when doing so.

Any help on removing Entities entirely?


I did exactly the same thing that Mr Pablo did, but for a bundle : I moved a bundle (renamed) and modified all calls to it.

I have the same error :

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

Some help will be very welcomed :)

EDIT:

Well I solved the problem, Adam Stacey had heard it well :)

Before changing anything, I was logged in the website, by using FOSUserBundle firewall. By changing the name of the bundle, it fooled the firewall and it was stuck at line 70 of ./vendor/symfony/src/Symfony/Component/Security/Core/Authentication/Token/AbstractToken.php Here is the function :

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

    return (string) $this->user;
}

So I commented out the line return (string) $this->user;, reloaded the webpage, logged out, than reverted the comment. And voilà !


What kind of errors were you getting?

Make sure you:

  1. Clear cache
  2. Rebuild database
  3. Don't have any entity relationships with it
  4. Don't have any code based on the entities


Like Inori mentioned have you tried rebuilding your entities?

If not try this from the CLI:

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

Replace "Acme" with your name, company name or whatever you have used in your bundles.

The other thing you may have to do is remove any instances where you have used the entities.

For example, you may have some entities in the controllers that look like this:

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

They will need to be removed.

If you have the details of the particular errors that are coming up let me know what they are and I will try and help you further.


I have heard that this can also sometimes be to do with sessions. Are you using any bundles for authentication or anything like that?

In your php.ini file do you have your set to:

session.auto_start = Off

This may be way off, but worth a go. Let me know.

On a separate note. Did your server setup pass the checks in the app/check.php file that you can run via CLI?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜