Отношение Symfony с префиксом

Я борюсь с подключением/отношением основного класса/таблицы к связанному классу в symfony 1.4 с доктриной. Отношение

$relatedClass->identifier == 'e'.$mainClass->id;

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

Любые идеи? Спасибо!


person Andreas    schedule 22.08.2011    source источник


Ответы (2)


Вы не можете реализовать это отношение в Doctrine, потому что это не настоящий внешний ключ.

Если вы не можете изменить существующий столбец, можно ли создать новый столбец? Если это так, напишите миграцию, чтобы добавить столбец в таблицу relatedClass с правильным отношением внешнего ключа.

person Jeremy Kauffman    schedule 23.08.2011
comment
Спасибо за ваш комментарий, я тоже думал об этом, но мы отклонили эти мысли из-за нескольких недостатков. - person Andreas; 23.08.2011

Наконец, я сделал «псевдоотношение» следующим образом:

$results = Doctrine::getTable($relatedClass)
            ->createQuery('alias')
            ->addWhere('alias.identifier=?','e'.$event->getId())
            ->execute();

Он имеет несколько преимуществ:

  • нет необходимости вносить изменения в существующие таблицы
  • нет добавления бесполезного столбца в и без того огромную базу данных

Это не элегантно, но это решение с наибольшим количеством преимуществ.

person Andreas    schedule 23.08.2011