Гидратация - это метод, используемый для возврата результатов запроса.Например:
HYDRATE_ARRAY
- Это вернет вам массив записей, представленных другим массивом:
$ q = Doctrine_Query :: create ()
-> from ('Post p ')
-> setHydrationMode (Doctrine :: HYDRATE_ARRAY);
$ resultSet = $ q-> execute (); // $ resultSet - это массив
foreach ($ resultSet as $ post) {
// $ post - это массив
echo $ post ['title' ];
}
HYDRATE_RECORD
- это вернет вам коллекцию ( Doctrine_Collection ) объектов:
$ q = Doctrine_Query :: create ( )
-> from ('Post p')
-> setHydrationMode (Doctrine :: HYDRATE_RECORD); // Необязательно, HYDATE_RECORD - это метод по умолчанию
$ resultSet = $ q-> execute (); // $ resultSet - это объект Doctrine_Collection
foreach ($ resultSet as $ post) {
// $ post - это объект Post
echo $ post-> getTitle ();
echo $ post ['название']; // Каждый объект модели Doctrine реализует интерфейс ArrayAccess, поэтому это возможно
echo $ post-> myCustomMethod ();
}
HYDRATE_SINGULAR_SCALAR
- вернет значение первого столбца результата запроса:
$ q = Doctrine_Query :: create ()
-> select ('p.created_at')
-> from ('Post p') {{ 1}} -> где ('p.id =?', 321)
-> setHydrationMode (Doctrine :: HYDRATE_SINGULAR_SCALAR);
$ createdAt = $ q-> execute (); // $ createdAt имеет значение первого столбца из первой записи из набора результатов (например: 2008-04-06 21:22:35)
Есть еще несколько методов, вы можете прочитать о каждом в документации.