2015-05-17 4 views
2

Я пытаюсь использовать Symfony 2.6/Doctrine 2 на Ubuntu 14.04 с php5.5.9/mysql5.5. Но я получаю очень странную ошибку и не нашел никакого решения.Аннотации доктрины пытаются загрузить автозагрузку неправильной аннотации

Я создаю очень простой объект с командой doctrine:generate:entity. Все в порядке. Но когда я пытаюсь создать таблицу с doctrine:schema:update команды я получаю невозможное, чтобы исправить ошибку :)

[Doctrine\Common\Annotations\AnnotationException] 
[Semantical Error] The annotation "@Doctrine\ORM\Mapping\I" in property AppBundle\Entity\Language::$id does not exist, or could not be auto-loaded. 

Ну, на самом деле это правильно. Нет ничего такого @Doctrine\ORM\Mapping\I.

Это все о @ORM\Id. Когда я меняю @ORM\Id, ошибка также изменяется. Я изменяю его на @ORM\Hello, ошибка изменяется как @Doctrine\ORM\Mapping\Hello. Но когда я меняю его на @ORM\Isthisreal, ошибка стоит на месте, как @Doctrine\ORM\Mapping\I.

У меня есть некоторая ошибка синтаксического анализа чувствительности к регистру. Но не мог найти никакого разрешения. Я много пробовал, но ничего не меняется. Вот мое простое лицо:

<?php 

namespace AppBundle\Entity; 

use Doctrine\ORM\Mapping as ORM; 

/** 
* Language 
* 
* @ORM\Table() 
* @ORM\Entity(repositoryClass="AppBundle\Entity\LanguageRepository") 
*/ 
class Language 
{ 
    /** 
    * @var integer 
    * 
    * @ORM\Column(name="id", type="integer") 
    * @ORM\Id 
    * @ORM\GeneratedValue(strategy="AUTO") 
    */ 
    private $id; 

    /** 
    * @var boolean 
    * 
    * @ORM\Column(name="is_active", type="boolean") 
    */ 
    private $isActive; 

    /** 
    * @var string 
    * 
    * @ORM\Column(name="iso", type="string", length=2) 
    */ 
    private $iso; 


    /** 
    * Get id 
    * 
    * @return integer 
    */ 
    public function getid() 
    { 
     return $this->id; 
    } 

    /** 
    * Set isActive 
    * 
    * @param boolean $isActive 
    * @return Language 
    */ 
    public function setisActive($isActive) 
    { 
     $this->isActive = $isActive; 

     return $this; 
    } 

    /** 
    * Get isActive 
    * 
    * @return boolean 
    */ 
    public function getisActive() 
    { 
     return $this->isActive; 
    } 

    /** 
    * Set iso 
    * 
    * @param string $iso 
    * @return Language 
    */ 
    public function setiso($iso) 
    { 
     $this->iso = $iso; 

     return $this; 
    } 

    /** 
    * Get iso 
    * 
    * @return string 
    */ 
    public function getiso() 
    { 
     return $this->iso; 
    } 
} 
+0

ли очистить кэш? –

+0

Вы также можете попытаться импортировать именно класс Id с помощью 'use Doctrine \ ORM \ Mapping \ Id' и использовать' @ Id' в аннотации. –

+0

Также вы можете попытаться поместить '@ORM \ Id' перед аннотацией' @ORM \ Column'. Может быть, это поможет. –

ответ

2

Попробуйте запустить это до доктрины: схемы: обновление

export LC_ALL=C 
+1

Какова связь между экспортом этой переменной среды и схемой схемы доктрины? Есть ли официальная документация по этому поводу? – edigu

Смежные вопросы