пятница, 5 августа 2011 г.

Yii DAO и маппинг

При работе с фреймворком yii возникла необходимость выполнить сложный sql-запрос. Такой, что проще было использовать DAO, чем Active Record.

Примечание: AR не дает решения для всех задач, касающихся работы с базами данных. Лучше всего его использовать для моделирования таблиц в конструкциях PHP и для несложных SQL-запросов. Для сложных случаев следует использовать Yii DAO.

Но очень расстраивало, что DAO возвращает ассоциированные массивы, а не объекты. Везде на сайте используется ORM, а тут вдруг выборка массивами...

К счастью, было найдено решение при помощи PDO-магии. И оно работает, отдает и заполняет объект, как при использовании AR.


Copy Source | Copy HTML
  1. $command=Yii::app()->db->createCommand($sql);
  2. $command->setFetchMode(PDO::FETCH_CLASS|PDO::FETCH_PROPS_LATE, "Post");
  3. $posts=$command->queryAll();

Комментариев нет:

Отправить комментарий