Что такое гидратация Доктрины? [закрытый]

90
задан Denis Kulagin 5 July 2016 в 08:43
поделиться

1 ответ

Гидратация - это метод, используемый для возврата результатов запроса.Например:

  1. 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' ]; 
    } 
     
  2. 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 (); 
    } 
     
  3. 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) 
     

Есть еще несколько методов, вы можете прочитать о каждом в документации.

92
ответ дан 24 November 2019 в 07:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: