Saya telah membaca tentang hidrasi dalam dokumentasi doktrin tetapi saya masih tidak dapat memahami apa itu hidrasi.
Bisakah seseorang menjelaskan?
Saya telah membaca tentang hidrasi dalam dokumentasi doktrin tetapi saya masih tidak dapat memahami apa itu hidrasi.
Bisakah seseorang menjelaskan?
Jawaban:
Hidrasi adalah metode yang digunakan untuk mengembalikan hasil kueri. Sebagai contoh:
HYDRATE_ARRAY
- Ini akan mengembalikan Anda array record yang diwakili oleh array lain:
$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
- Ini akan mengembalikan Anda koleksi ( Doctrine_Collection ) objek:
$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
- Akan mengembalikan nilai kolom pertama hasil query:
$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)
Ada beberapa metode lagi, Anda dapat membaca masing-masing di dokumentasi.
orderBy()
menangani ini). Ini tentang Apa yang akan dihasilkan kueri Anda , apakah itu akan berupa nilai skalar tunggal ( HYDRATE_SINGULAR_SCALAR
), larik atau larik di mana larik bersarang mewakili setiap catatan database ( HYDRATE_ARRAY
) atau kumpulan objek ( HYDRATE_RECORD
). Lakukan var_dump pada hasil kueri untuk setiap mode hidrasi - itulah cara terbaik untuk melihat "cara kerjanya?"
HYDRATE_SINGULAR_SCALAR
mengembalikan kesalahan konstan yang tidak ditentukan. HYDRATE_SINGLE_SCALAR
benar.
Doctrine::HYDRATE_RECORD
sekarang dikenal sebagaiDoctrine::HYDRATE_OBJECT
$q->fetchOne(array(), Doctrine_Core::HYDRATE_ARRAY);
Ini hanya akan mengembalikan array sederhana daripada objek koleksi doktrin.