Doktrinin belgelerinde hidrasyon hakkında okudum ama hala ne olduğunu anlayamıyorum.Doktrin hidrasyonu nedir?
Birisi lütfen açıklayabilir misiniz?
Doktrinin belgelerinde hidrasyon hakkında okudum ama hala ne olduğunu anlayamıyorum.Doktrin hidrasyonu nedir?
Birisi lütfen açıklayabilir misiniz?
Hidrasyon, sorgu sonuçlarını döndürmek için kullanılan bir yöntemdir. Örneğin: -
HYDRATE_ARRAY
Bu, başka dizide temsil edilir kayıtların bir dizi 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 koleksiyonu (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 ilk sütununun değerini döndürür r esult: birkaç yöntemler vardı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)
, yaklaşık her belgelerinde okuyabilir.
ok..so normalde sql kullandığımda bir mysql nesnesi döndürür ve mysqli_fetch_assoc kullanmalıyım, sonra bunları kendim sıraladım ... ama şimdi hepsi benim için. hidrasyonun neyle ilgili olduğu, bana sıralanmış nesneler/diziler veren nedir? –
Hayır, sonucu sıralamakla ilgili değil ('orderBy()' bu işlemi ele al). Bu nedir * Sorgu sonucunuz ne olacak *, tek bir skaler de (ger mi ('HYDRATE_SINGULAR_SCALAR'), iç içe dizilerin her veritabanı kayd (n ((HYDRATE_ARRAY') veya nesne koleksiyonunu (HYDRATE_RECORD') temsil ettiği bir dizi veya diziler mi?). Her hidrasyon modu için sorgu sonucu [var_dump] (http://pl.php.net/manual/en/function.var-dump.php) yapın - bu, "nasıl çalışır?" I görmenin en iyi yoludur. – Crozin
aha..i şimdi anladığımı düşünüyorum. Yani sonuç hangi formda olmasını istiyorum: skaler değer, diziler veya nesneler? Bu çok hoş bir özellik gibi geliyor. onları mysqli_object :) –
Doctrine2 dokümantasyon referans açıklayan HYDRATION: http://www.doctrine-project.org/docs/orm/2.0/en/reference/dql-doctrine-query-language.html#query-result-formats
$q->fetchOne(array(), Doctrine_Core::HYDRATE_ARRAY);
It will return just a simple array instead of a doctrine collection object.
değil yapıcı? Bu, Doktrin içsellerinin nasıl çalıştığını anlamak için en temel kavramlardan biridir. – csvan
Bu sorunun kapalı olmaktan çok korunması gerektiğini düşünüyorum. – Simon
@Simon Katılıyorum. Soru ve kabul edilen cevap her ikisi de popülerdir, o zaman neden onu _protected_ durumuna taşımayın? –