Symfony 2 - 属性中的注释不存在,或者无法自动加载。

时间:2013-10-18 07:31:39

标签: php symfony doctrine

我正在做symfony 2教程 - 教条和数据库。

我在Entity / Pages.php中创建了Pages.php文件

<?php
namespace Dproc\MainBundle\Entity;

use Doctrine\ORM\Mapping as ORM;

/**
 * @IgnoreAnnotation("fn")
 *
 */
/**
 * @ORM\Entity
 * @ORM\Table(name="pages")
 */
class Pages
{
    /**
     * @ORM\ID
     * @ORM\Column(type="integer")
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    protected $ID;

    /**
     * @ORM\Column(type="text")
     */
    protected $page_title;

    /**
     * @ORM\Column(type="text")
     */
    protected $page_content;

    /**
     * @ORM\Column(type="text")
     */
    protected $page_category;
}

现在我正在尝试使用此命令为此类生成setter和getter。

php app/console doctrine:generate:entities Dproc/MainBundle/Entity/Pages

它告诉:

[Doctrine\Common\Annotations\AnnotationException]                            
  [Semantical Error] The annotation "@Doctrine\ORM\Mapping\ID" in property Dp  
  roc\MainBundle\Entity\Pages::$ID does not exist, or could not be auto-loade  
  d. 

我做错了什么?

2 个答案:

答案 0 :(得分:10)

使用以下代码更改您的$ ID:

/**
 * @var integer
 *
 * @ORM\Column(type="integer", nullable=false)
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
private $id;

答案 1 :(得分:3)

我认为这是区分大小写的,请尝试:

@ORM/Id