невозможно изменить стратегию имени в Doctrine 2

Я использую Zend Framework 2.4.3 и Doctrine 0.9 (для ZF2). Имена моих сущностей в CamelCase, тогда как имена моих таблиц все в нижнем регистре. Это приводит к ошибке в mysql

«SQLSTATE [42S02]: базовая таблица или представление не найдены: 1146 Таблица «mydb.Campaign» не существует»

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

/**
 * ORM\Table(name="campaign")
**/
class Campaign
{
    //fields are here
}

Я создал custom NamingStrategy для нижнего регистра имени таблицы, но Doctrine почему-то не использует NamingStrategy. Я говорю это, потому что я изменил код DefaultNamingStrategy, чтобы изменить регистр имени таблицы, но результирующее имя таблицы всегда Кампания, а не «кампания».

Я что-то пропустил?


person ZafarYousafi    schedule 11.07.2015    source источник
comment
MySql, и я не могу изменить его с чувствительного к регистру на нечувствительный к регистру.   -  person ZafarYousafi    schedule 12.07.2015
comment
Почему этот вопрос помечен как symfony2?   -  person Francesco Abeni    schedule 12.07.2015
comment
Вы включаете пространство имен ORM в свой файл сущности?   -  person Saeven    schedule 12.07.2015
comment
Да, я включаю пространство имен ORM, используя Doctrine\ORM\Mapping как ORM   -  person ZafarYousafi    schedule 12.07.2015
comment
@FrancescoAbeni, потому что symphony2 также загружается как зависимость. Я новичок и не знаю, относится ли это к симфонии или нет.   -  person ZafarYousafi    schedule 12.07.2015


Ответы (1)


Если этот код тот, который вы используете для своего объекта, то перед ORM отсутствует @:

/**
 * @ORM\Entity
 * @ORM\Table(name="campaign")
 */
class Campaign
person danopz    schedule 13.07.2015