2013-10-18 10 views
6

私はsymfony 2チュートリアル - Doctrineとデータベースをやっています。 Symfony 2 - プロパティ内の注釈が存在しないか、自動ロードできませんでした。

は私が
<?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; 
} 

が、今私は、このコマンドを使用して、このクラスのセッターとゲッターを生成しようとしているエンティティ/ Pages.phpでファイルPages.phpを作成しました。

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. 

を私が間違っているのか?

答えて

10
は、次のコードを使用して$のIDを変更し

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

は、それは確かに働きました。しかし、私のテーブルには、IdではなくIDがあります。なぜエラーが表示されるのですか? –

+1

変数の名前はセカンダリです。任意の名前を付けることができます。しかし、Doctrineの注釈は、大文字と小文字が区別され、IDとして「Id」と認識されます。 –

+0

情報ありがとうございました!.. –

3

私はこれは大文字と小文字が区別だと思い、試してみてください。

@ORM/Id 
関連する問題