Я нашел очень полезную функцию Doctrine для установки атрибута в таблице для получения идентификаторов базы данных также в качестве ключей в результирующей коллекции Doctrine_Collection. Эта функция описана здесь: http://www.doctrine -project.org / projects / orm / 1.2 / docs / manual / обзор компонентов / en # collection: key-mapping
Теперь вопрос. Я не могу использовать сам объект таблицы, потому что мне нужно создать динамический запрос к таблице (а не магические искатели, как в примере).
Я попробовал этот код:
$doctrineTable = Doctrine_Core::getTable($table);
$doctrineTable->setAttribute(Doctrine_Core::ATTR_COLL_KEY, "id");
$q = $doctrineTable->createQuery("t");
foreach ($filter as $c => $v) // lopp thru coumns
if (is_array($v)) // use whereIn if value is an array
$q->andWhereIn("t." . $c, $v);
elseif (is_null($v)) // use is null for null values
$q->andWhere("t." . $c . " IS NULL");
else // use where in other cases
$q->andWhere("t." . $c . "=?", $v);
return $q->fetchAll();
К сожалению, результирующая коллекция по-прежнему не использует ассоциативный массив, а обычный, просто использующий ключи от 0 до
У кого-нибудь есть идея, как этого добиться для запроса к одной таблице?
Ура,
Daniel