Intereting Posts

Doctrine 2: Error: Class ".. \ .." не имеет поля или ассоциации с именем "…"

При поиске я придумал много результатов людей, имеющих похожие проблемы, но они всегда были связаны с ошибками ассоциации. Я пытаюсь добавить простое текстовое поле в таблицу в базе данных, и, для жизни меня, я не могу понять, что по-другому в это время – когда я делал это без проблем много раз раньше.

Я добавил поле «record_checksum» в 4 разных объекта, но я буду использовать только один, чтобы упростить пример. (То же самое происходит и для всех 4).

Ниже приведен пример моего файла Entity \ Cloud.php, в котором поле « record_checksum » добавлено внизу:

use Doctrine\ORM\Mapping as ORM; namespace Entity; /** * Entity\Cloud * * @orm:Table(name="cloud") * @orm:Entity * @orm:HasLifecycleCallbacks */ class Cloud { /** * @var integer $id * * @orm:Column(name="id", type="integer", length="13") * @orm:Id * @orm:GeneratedValue(strategy="IDENTITY") */ private $id; /** * @var float $position_x * * @orm:Column(name="position_x", type="float", length=9) */ private $position_x; /** * @var float $position_y * * @orm:Column(name="position_y", type="float", length=9) */ private $position_y; /** * @var string $commit_group * * @orm:Column(name="commit_group", type="string", length=32, nullable=true) */ private $commit_group; /** * @var string $commit_key * * @orm:Column(name="commit_key", type="string", length=13, nullable=true) */ private $commit_key; /** * @var string $record_checksum * * @orm:Column(name="record_checksum", type="string", length=32, nullable=true) */ private $record_checksum; 

Остальная часть класса – это методы getter / setter, поэтому я оставлю это. Чтобы увидеть весь файл Entity, я положил его на pastebin ( http://pastebin.com/9LheZ6A1 ). «Commit_key», который я только что добавил несколько недель назад, без проблем.

Теперь я обновляю схему:

 $ doctrine orm:schema-tool:update --dump-sql ALTER TABLE cloud ADD record_checksum VARCHAR(32) DEFAULT NULL; $ doctrine orm:schema-tool:update --force Updating database schema... Database schema updated successfully! 

Я проверил, что это поле теперь существует в таблице БД.

Однако, когда я запускаю простой DQL-запрос, например:

 $dql = "SELECT c.id AS id, c.commit_key AS key, c.record_checksum AS checksum ". "FROM Entity\\Cloud c WHERE c.commit_group = :commit_group"; 

Я получаю сообщение об ошибке:

  [Semantical Error] line 0, col 42 near 'record_checksum': Error: Class Entity\Cloud has no field or association named record_checksum, 

Я уже несколько секунд стуча головой о стену. Я уверен, что я упускаю из виду что-то действительно глупое. Любая помощь очень ценится! -Ник