Doktrinin belgelerinde hidrasyon hakkında bir şeyler okudum ama hala ne olduğunu anlayamıyorum.
Biri açıklayabilir mi lütfen?
Doktrinin belgelerinde hidrasyon hakkında bir şeyler okudum ama hala ne olduğunu anlayamıyorum.
Biri açıklayabilir mi lütfen?
Yanıtlar:
Hidrasyon, sorgu sonuçlarını döndürmek için kullanılan bir yöntemdir. Örneğin:
HYDRATE_ARRAY
- Bu size başka bir dizi tarafından temsil edilen bir kayıt dizisi döndürür:
$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
- Bu size nesnelerin bir koleksiyonunu ( Doctrine_Collection ) döndürür :
$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
- Sorgunun sonucunun ilk sütununun değerini döndürür:
$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)
Birkaç yöntem daha var, her biri hakkında dokümantasyonda okuyabilirsiniz.
orderBy()
halledin). Yaklaşık olduğunu Ne sorgu sonucunu olacak tek bir skaler değer olup olmayacağı, ( HYDRATE_SINGULAR_SCALAR
), iç içe diziler her veritabanı kaydı (temsil bir dizi veya diziler HYDRATE_ARRAY
) ya da nesneler topluluğu ( HYDRATE_RECORD
). Do var_dump her hidrasyon modu için sorgu sonucu - "nasıl çalıştığını" görmek için en iyi yoldur
HYDRATE_SINGULAR_SCALAR
tanımsız bir sabit hata döndürür. HYDRATE_SINGLE_SCALAR
doğrudur.
Doctrine::HYDRATE_RECORD
olarak artık şu adla biliniyorDoctrine::HYDRATE_OBJECT
$q->fetchOne(array(), Doctrine_Core::HYDRATE_ARRAY);
Bir doktrin toplama nesnesi yerine sadece basit bir dizi döndürecektir.