تالار گفتمان nCIS.ir

نسخه‌ی کامل: متد recent در جلسه ی نه
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام
در جلسه ی نه متد recent را به مدل comment 

public function recent($limit=5)
    {
        $this->getDbCriteria()->mergeWith(
            array(         
            'order'=>'t.create_time DESC',         
                'limit'=>$limit,     
            )
        );     
        return $this;
    }
ایا این متد از متدهای موجود در یی هست که ما این جا ان را دوباره نویسی rewrite کردیم؟
این متد چه کاری برای ما انجام می دهد؟

مچکرم
این متد رو خودمون ساختیم و اسمش اختیاریه. کارش اینه که به Criteria مدل ما limit رو اضافه میکنه و درنتیجه وقتی بگیم findAll اتفاق بیفته، فقط همون تعداد رکوردی که مشخص کردیم رو استخراج میکنه.
Criteria چی هست؟
کار متد getDbCriteria چیست؟
Criteria یه ابزار برای ساخت کوئری محسوب میشه. برای مثال به کد زیر دقت کنید:
$criteria = new CDbCriteria;
$criteria->select = 'id,title,body';
$criteria->order = 'ts DESC';
$criteria->limit = 5;
$criteria->addColumnCondition(array('confirmed' => 1));
$posts = Posts:model()->findAll($criteria);

کد بالا، فیلدهای id و title و body از 5 رکورد آخر (برحسب فیلد ts) رو که confirmed اونها 1 هست، استخراج میکنه.

متد getDbCriteria هم درواقع شئ Criteria اکتیورکورد جاری رو برمیگردونه.