رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
نمایش مجموع بازدید
#1
Thumbs Up 
سلام
من تو وبلاگم ( وبلاگ پیش فرض Yii )میخوام مجموع بازدید نوشته هام رو ن مایش بدم اما نمیشه

$criteria = new CDbCriteria;
$criteria->select='SUM(hit) as sum';
$hitCounter = Post::model()->find($criteria);
echo $hitCounter->sum;
اررور 500 میده که
ویژگیهای "Post.sum" تعریف نشده است

کجای کارم ایراد داره؟
با تشکر
پاسخ
تشکر شده توسط:
#2
یک فیلد برای sum به مدلتون اضافه کنید:
public $sum;
پاسخ
تشکر شده توسط:
#3
ممنون استاد شهرکی
درست شد
یه سوال
این کد بهتره
$criteria = new CDbCriteria;
$criteria->select='SUM(hit) as sum';
$hitCounter = Post::model()->find($criteria);


یا این کد

$hit= Yii::app()->db->createCommand("SELECT SUM(hit) FROM tbl_post ")->queryScalar();

هر دو برای کار من جواب میده

آیا فرقی از نظر کیفیت و کارایی داره؟ 

ممنون از شما
پاسخ
تشکر شده توسط:
#4
ازنظر مصرف حافظه، دومی بهتره ولی میتونید این مدلی هم کار کنید که ازنظر نوشتن و خوانایی کد، بهتره:
class Post extends CActiveRecord
{
    public $sum;
    public function relations()
    {
        return array(
            'sum' => array(self::STAT, 'select' => 'SUM(hit) as sum'),
            // ...
        );
    }
    // ...
}

حالا توی کدتون میتونید اینطوری کار کنید:
$hit = new Post()->sum;

یا اگه یه شئ از کلاس Post دارین، ازطریق همون کار کنید:
echo $post->sum;
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان