به نام خدا، سلام
$dependecy = new CDbCacheDependency('SELECT MAX(update_time) FROM {{post}}')
CActiveDataProvider(Post::model()->cache($duration, $dependecy, 2), array (
'criteria' => array (
'condition' => 'status = 1',
'order' => 'DESC create_time',
) 'pagination' => array (
'pageSize' => 20,
) ));
در کد بالا تعداد کوئری که باید از کش فراخوانی بشن رو برابر دو قرار گرفته. یکی برای count گرفتن از جدول جهت pagination و یکی هم برای واکشی رکوردها.
مشکل اینجاست، هنگامی که رکوردی در جدول دیتابیس نداشته باشیم، کوئری دوم اجرا نمیشه و نگه داشته میشه برای کوئری بعدی دیتا بیس. که این باعث میشه کوئری بعدی به دیتابیس هم کش بشه، در حالی که نمیخوایم از کش استفاده کنیم. چطور میشه این مشکل رو حل کرد؟ چطوری میشه کوئری باقیمانده در کش رو لغو کرد؟