【问题标题】:symfony doctrine:generate:entities cannot auto-load annotationssymfony 学说:生成:实体不能自动加载注释
【发布时间】:2017-03-16 21:44:40
【问题描述】:

我运行 Symfony 3.1.5、PHP 7.0.12 和 composer 1.2.1。

我有一个简单的实体:

<?php

namespace AppBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * Class Event
 * @package AppBundle\Entity
 * @ORM|Entity
 * @ORM|Table(name="event")
 */
class Event
{
    /**
     * @ORM|Column(type="integer")
     * @ORM|Id
     * @ORM|GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM|Column(type="guid")
     */
    private $uuid;

    /**
     * @ORM|Column(type="string", length=100)
     */
    private $name;

    /**
     * @ORM|Column(type="text")
     */
    private $description;

    /**
     * @ORM|Column(type="datetimetz")
     */
    private $startDate;

    /**
     * @ORM|Column(type="datetimetz")
     */
    private $endDate;

    /**
     * @ORM|Column(type="text")
     */
    private $location;
}

The documentation states 我可以运行

php bin/console doctrine:generate:entities AppBundle/Entity/Event

为了为我的私有属性创建 getter 和 setter。我在那里遇到以下错误:

  [Doctrine\Common\Annotations\AnnotationException]
  [Semantical Error] The annotation "@Doctrine\ORM\Mapping" in class AppBundle\Entit
  y\Event does not exist, or could not be auto-loaded.

由于注释以别名@ORM 的形式存在,我猜这是一个自动加载问题。

我搜索了一下,发现了一些链接到this pluginold post,这也不起作用。

所有帖子似乎都与Doctrine\ORM\Mapping类没有以常规方式自动加载,而是需要单独加载有关。但是我找不到关于如何为控制台启动和运行它的明确指南。你能帮忙吗?

【问题讨论】:

  • | 替换为\ 例如@ORM\Entity

标签: php symfony doctrine-orm


【解决方案1】:

您应该将注释替换为以下内容:

/**
 * EntityName
 *
 * @ORM\Table(name="table_name")
 * @ORM\Entity(repositoryClass="PATH TO REPO")
 */

使用 \ 代替 |

【讨论】:

  • 看来我需要一副新眼镜。在文档中,我将其视为管道。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多