【问题标题】:Symfony 2 - doesn't see entity classSymfony 2 - 看不到实体类
【发布时间】:2016-07-11 06:54:12
【问题描述】:

我的代码中有这个声明:

\Page\dashboardBundle\Entity\Cars as Cars;

但是当我尝试创建 Cars 类的新对象( new \Cars() )时,我收到错误:

尝试从全局命名空间加载类“Cars”。 您是否忘记了“使用”语句?

问题的原因是什么?

【问题讨论】:

    标签: php namespaces


    【解决方案1】:

    当您执行new \Cars() 时,您正在尝试在 root 命名空间中创建类 Cars 的实例。那是因为类名前的反斜杠。

    只需删除黑斜线:

    new Cars();
    

    【讨论】:

    • 我尝试了您的解决方案,但我得到:在链配置的命名空间 cron\UpdateClientListBundle\Entity 中找不到类 'Page\dashboardBundle\Entity\Cars' 实体存在于与控制器类不同的 Bundle 中。
    • 这意味着它起作用了,而且它向前迈出了一步。 ;-) 现在你有一个不同的问题,与 PHP 本身无关,但现在是关于 Symfony。谷歌以获取该错误消息或提供有关您如何尝试使用它的信息(可能在不同的问题中),因为现在上下文很重要。
    • 好的,问题的原因是我忘记声明 Doctrine 的实体管理器
    【解决方案2】:

    如果您使用“\”字符表示您在 PHP 中说的加载类以加载到全局核心命名空间 PHP。

    您已经声明了“汽车”类。您不需要使用“\”字符。只需写new Cars,代码就可以正常运行,就可以实例化\Page\dashboardBundle\Entity\Cars

    【讨论】:

      【解决方案3】:
      1. 前面加use了吗?

        use \Page\dashboardBundle\Entity\Cars as Cars;

      2. 您是否尝试在 Cars 呼叫之前删除 "\"

        new Cars;

      3. 输入的命名空间是否与类本身定义的命名空间相匹配?

        含义,是 \Page\dashboardBundle\Entity\ 中 Cars 类的位置,类本身是否包含命名空间 \Page\dashboardBundle\Entity\

      【讨论】:

      • 不幸的是 3xYES。
      猜你喜欢
      • 1970-01-01
      • 2012-12-22
      • 1970-01-01
      • 1970-01-01
      • 2014-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多