【问题标题】:Symfony2 - How to delete/move an entity?Symfony2 - 如何删除/移动实体?
【发布时间】:2011-08-16 14:24:37
【问题描述】:

我正在学习 symfony2 并想在一个包中创建一些 Doctrine 实体,我想移动它们。

但是,在移动并更改它们被引用的任何实例之后,我在尝试运行我的应用程序时遇到了错误。

我把它们搬回来了,一切都很好。

现在我只是想完全删除它们,但是这样做时我再次遇到错误。

对完全删除实体有帮助吗?

【问题讨论】:

  • 提供实际错误会有所帮助。

标签: php symfony


【解决方案1】:

我做了和 Pablo 先生完全一样的事情,但是对于一个包:我移动了一个包(重命名)并修改了对它的所有调用。

我有同样的错误:

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

一些帮助将非常受欢迎:)

编辑:

好吧,我解决了这个问题,Adam Stacey 听得很清楚 :)

在更改任何内容之前,我使用 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; 行,重新加载了网页,退出了,然后回复了评论。瞧!

【讨论】:

    【解决方案2】:

    你遇到了什么错误?

    确保你:

    1. 清除缓存
    2. 重建数据库
    3. 与它没有任何实体关系
    4. 没有任何基于实体的代码

    【讨论】:

    • 清除了所有可能的缓存,包括文件系统和命令行。刚刚删除了我的数据库中的所有数据,在两个 Bundle 中重建实体。还是没有运气。
    • ErrorException: 可捕获的致命错误: __PHP_Incomplete_Class 类的对象无法转换为 C:\xampp\htdocs\Symfony\vendor\symfony\src\Symfony\Component\Security\Core\Authentication\ 中的字符串Token\AbstractToken.php 第 70 行
    【解决方案3】:

    就像 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;
    

    它们需要被移除。

    如果您有即将出现的特定错误的详细信息,请告诉我它们是什么,我会尽力为您提供进一步的帮助。

    【讨论】:

    • 我尝试了所有这些。我现在刚刚删除了我创建的第二个包,并删除了最后一次提到的 Entity php 文件。所以现在我的应用程序应该只是一个带有基本表单的页面。它仍然无法加载。
    • 好的,在内核等中删除了我所有的包和对它们的引用。生成了一个新包,在浏览器中查看它,使用 /hello/name 和 BAM!破碎的。与我之前打印的错误相同。我的整个应用程序都坏了:/
    【解决方案4】:

    我听说这有时也与会话有关。您是否使用任何捆绑包进行身份验证或类似的东西?

    在您的 php.ini 文件中,您是否设置为:

    session.auto_start = Off
    

    这可能有点远,但值得一试。告诉我。

    在单独的说明中。您的服务器设置是否通过了您可以通过 CLI 运行的 app/check.php 文件中的检查?

    【讨论】:

      猜你喜欢
      • 2012-08-02
      • 1970-01-01
      • 1970-01-01
      • 2014-03-21
      • 2013-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多