나는 교리의 문서에서 수화에 대해 읽었지만 여전히 그것이 무엇인지 이해할 수 없습니다.
누군가 설명해 주시겠습니까?
나는 교리의 문서에서 수화에 대해 읽었지만 여전히 그것이 무엇인지 이해할 수 없습니다.
누군가 설명해 주시겠습니까?
답변:
Hydration은 쿼리 결과를 반환하는 데 사용되는 방법입니다. 예를 들면 :
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'];
}
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();
}
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)
몇 가지 방법이 더 있으며 문서에서 각각에 대해 읽을 수 있습니다.
orderBy()
. 그것은 관한 어떤 쿼리 결과를 의지 는 단일 스칼라 값 수 있는지 여부, ( HYDRATE_SINGULAR_SCALAR
), 중첩 된 배열은 각 데이터베이스 레코드 (대표 배열 또는 배열 HYDRATE_ARRAY
) 또는 개체의 컬렉션을 ( HYDRATE_RECORD
). 수행 위해서 var_dump 각 수화 모드에 대한 쿼리 결과에 - "? 어떻게 작동하는지"를 참조 할 수있는 가장 좋은 방법
HYDRATE_SINGULAR_SCALAR
정의되지 않은 상수 오류를 반환합니다. HYDRATE_SINGLE_SCALAR
맞다.
Doctrine::HYDRATE_RECORD
현재로 알려져있다Doctrine::HYDRATE_OBJECT
$q->fetchOne(array(), Doctrine_Core::HYDRATE_ARRAY);
교리 수집 객체 대신 단순한 배열 만 반환합니다.