Доктрина - разделенные запятыми значения в поле - PullRequest
1 голос
/ 01 декабря 2010

Я пытаюсь реализовать Doctrine поверх устаревшей базы данных MySql. На данный момент это работает отлично. Но ...

У меня События * Таблица 1004 * имеет следующую структуру:

CREATE TABLE `events` (
  `uid` int(11) NOT NULL AUTO_INCREMENT,
  -- skipped ---
  `title` varchar(255) NOT NULL DEFAULT '',
  `category` text,
)...

И таблица Категории , у которых есть категории. Структура как ...

CREATE TABLE `tx_tendsical_category` (
  ...
 `title` varchar(255) NOT NULL DEFAULT '',
  ...
)

Теперь ... ID категории * хранятся в виде значений, разделенных запятыми (,) в поле events.category Как я могу установить отношения без особых хлопот ... Мне нужно, чтобы многие и т.д. ...

Ответы [ 2 ]

3 голосов
/ 01 декабря 2010

Если у вас проблемы со схемой базы данных, напишите свои собственные гидраторы. Когда вы получите все данные, проанализируйте их и верните соответствующие коллекции объектов.

0 голосов
/ 02 декабря 2010

Я так и сделал ... Похоже, есть лучший способ?

public function getCategories(){
    return Doctrine_Query::create()
        ->from("Category c")
        ->where("c.uid IN ?",array(explode(",",$this->category)))
        ->execute(array(),Doctrine_Core::HYDRATE_ON_DEMAND);
}
...