2013-10-18 15 views
6

Ich mache Symfony 2 Tutorial - Lehre und Datenbanken.Symfony 2 - Die Annotation in der Eigenschaft existiert nicht oder konnte nicht automatisch geladen werden.

habe ich die Datei pages.php in Entity/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; 
} 

nun mit diesem Befehl Getter und Setter für diese Klasse zu erzeugen, ich versuche.

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

Es sagt:

[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. 

Was mache ich falsch?

Antwort

10

mit dem folgenden Code Ihre $ ID ändern:

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

Es funktionierte tatsächlich. Aber in meiner Tabelle gibt es ID, nicht ID, warum sollte es Fehler anzeigen? –

+1

Der Name der Variablen ist zweitrangig, Sie können einen beliebigen Namen eingeben. Die Anmerkungen von Doctrine unterscheiden jedoch zwischen Groß- und Kleinschreibung und erkennen den Bezeichner als "Id". –

+0

Okay, danke für Informationen! .. –

3

Ich denke, das Case Sensitive ist, versuchen:

@ORM/Id 
Verwandte Themen