আমি মতবাদের ডকুমেন্টেশনে হাইড্রেশন সম্পর্কে পড়েছি কিন্তু এখনও এটি বুঝতে পারি না।
কেউ দয়া করে ব্যাখ্যা করতে পারেন?
আমি মতবাদের ডকুমেন্টেশনে হাইড্রেশন সম্পর্কে পড়েছি কিন্তু এখনও এটি বুঝতে পারি না।
কেউ দয়া করে ব্যাখ্যা করতে পারেন?
উত্তর:
হাইড্রেশন এমন একটি পদ্ধতি যা কোয়েরির ফলাফলগুলি ফেরত দিতে ব্যবহৃত হয়। উদাহরণ স্বরূপ:
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
- এটি আপনাকে অবজেক্টগুলির একটি সংগ্রহ ( ডক্টরিন_কলেকশন ) ফিরিয়ে দেবে :
$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);
এটি মতবাদ সংগ্রহের বস্তুর পরিবর্তে কেবল একটি সাধারণ অ্যারে ফিরে আসবে।