امروز:سه شنبه ,۱۳۹۸/۰۷/۲۳
Download http://bigtheme.net/joomla Free Templates Joomla! 3
Home / Yii1 / استفاده از objectدر Gridview در Yii

استفاده از objectدر Gridview در Yii

یکی از امکانات فوق العاده ای که در Cgridview وجود داره اینه که شما میتوانید
به راحتی اطلاعات ستون gridveiw را با استفاده از یک آبجکت پر کنید
برای مثال شما میخواهید در gridview چیزی را نمایش دهید
که در جدول دیتابیستون نیست و باید بر اساس یک محاصبه انجام بشه
در مثال زیر من بر اساس شماره فاکتور مجموع هزینه ی آیتم های موجود در آن فاکتور را
محاصبه و در gridview نمایش می دهم .
در gridview:

 array(
            'header' => 'مجموع(ریال)',  
            'value' => array($this, 'totall'),
        ),

همونطور که می بینید من در قسمت value متد totall را فراخوانی کردم

حالا برای انجام محاسبات در کنترلر متد زیر را استفاده می کنیم :

protected function totall($data, $row) {
        $query = "select sum(total) as total from shop where factor='" . $data->factor."'";
        $result = Yii::app()->db->createCommand($query)->queryRow();
        if((int)$result['total'] !=0){
            $total=$result['total'];
        }
        else{
              $total=0;
        }
        return number_format($total);
    }

این روش را نیز به صورت زیر نیز می توان استفاده کرد (با استفاده از model )
در gridveiw:

 array(            
       'header' => 'مجموع(ریال)',  
            'value'=>array($model,'totall'), 
        ),

و در کنترلر:

 public function totall($data, $row) {
        $query = "select sum(total) as total from shop where factor='" . $data->factor."'";
        $result = Yii::app()->db->createCommand($query)->queryRow();
        if((int)$result['total'] !=0){
            $total=$result['total'];
        }
        else{
              $total=0;
        }
        return number_format($total);
    }

منبع

Check Also

متد findByAttributes

استفاده از متد findByAttributes() در yii1 یکی از متد های CActiveRecord متد findByAttributes می باشد …

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *