[php] 교리 수화 란 무엇입니까? [닫은]

나는 교리의 문서에서 수화에 대해 읽었지만 여전히 그것이 무엇인지 이해할 수 없습니다.

누군가 설명해 주시겠습니까?



답변

Hydration은 쿼리 결과를 반환하는 데 사용되는 방법입니다. 예를 들면 :

  1. HYDRATE_ARRAY -그러면 다른 배열로 표시되는 레코드 배열이 반환됩니다.

    $q = Doctrine_Query::create()
       ->from('Post p')
       ->setHydrationMode(Doctrine::HYDRATE_ARRAY);
    
    $resultSet = $q->execute(); // $resultSet is an array
    
    foreach ($resultSet as $post) {
        // $post is an array
        echo $post['title'];
    }
    
  2. HYDRATE_RECORD-그러면 개체 컬렉션 ( Doctrine_Collection ) 이 반환 됩니다.

    $q = Doctrine_Query::create()
       ->from('Post p')
       ->setHydrationMode(Doctrine::HYDRATE_RECORD); // Unnecessary, HYDATE_RECORD is default method
    
    $resultSet = $q->execute(); // $resultSet is an Doctrine_Collection object
    
    foreach ($resultSet as $post) {
        // $post is an Post object
        echo $post->getTitle();
        echo $post['title']; // Each Doctrine's Model object implements ArrayAccess interface so this is possible
        echo $post->myCustomMethod();
    }
    
  3. HYDRATE_SINGULAR_SCALAR -쿼리 결과의 첫 번째 열 값을 반환합니다.

     $q = Doctrine_Query::create()
       ->select('p.created_at')
       ->from('Post p')
       ->where('p.id = ?', 321)
       ->setHydrationMode(Doctrine::HYDRATE_SINGULAR_SCALAR);
    
    $createdAt = $q->execute(); // $createdAt has value of first column from first record from result set (eg.: 2008-04-06 21:22:35)
    

몇 가지 방법이 더 있으며 문서에서 각각에 대해 읽을 수 있습니다.


답변

$q->fetchOne(array(), Doctrine_Core::HYDRATE_ARRAY);

교리 수집 객체 대신 단순한 배열 만 반환합니다.


답변