[SOLVED] Ambil Nilai dr Model Berbeda Trus Tampilin di CGridView

Gan, bagi solusinya, udah semaleman nyari belum ktemu2

Gini gan, ane ceritanya mau buat kolom perhitungan dari beberapa kolom di cgridview, kolom yg dimaksud kolom Nilai Akhir (yang merupakan hasil dr perhitungan nilai_tugas, nilai_hadir, nilai_uts, nilai_uas).

Nah trus mau ada satu kolom lagi, yaitu kolom untuk nilai Huruf -> nilai Huruf ini didapet dari tabel lain gan (namanya tabel bobot), nilai Huruf ini didapet berdasarkan nilai Akhir tadi gan (misalnya: kalo nilai Akhir 100 berarti nilai Hurufnya = A)

Ni fungsi yg ane buat di Nilai::Model




public function search()

	{

		// Warning: Please modify the following code to remove attributes that

		// should not be searched.


		$criteria=new CDbCriteria;


		$criteria->compare('id',$this->id);

		$criteria->compare('id_krs',$this->id_krs);

                $criteria->compare('nim',$this->nim);

		$criteria->compare('nilai_hadir',$this->nilai_hadir,true);

		$criteria->compare('nilai_tugas',$this->nilai_tugas,true);

		$criteria->compare('nilai_uts',$this->nilai_uts,true);

		$criteria->compare('nilai_uas',$this->nilai_uas,true);

		$criteria->compare('nilai_akhir',$this->nilai_akhir,true);

		$criteria->compare('t.id_jadwal',$this->id_jadwal,true);

		$criteria->compare('t.thn_ajaran',$this->thn_ajaran);


		return new CActiveDataProvider(get_class($this), array(

			'criteria'=>$criteria,

		));

	}


 public static function getHuruf()

        {

            $nilai_bobot=0;


            $provider = Nilai::model()->findAll();

            foreach($provider as $data)

                {

                        $nilai_akhir = (($data->nilai_hadir*0.1)+($data->nilai_tugas*0.2)+

                                       ($data->nilai_uts*0.3)+($data->nilai_uas*0.4));

                        $sql = "SELECT `huruf` FROM tbl_bobot WHERE `nilai_akhir` like ':nilai_akhir%' ";

                        $nilai_bobot=Bobot::model()->findBySql($sql,array(':nilai_akhir'=>$nilai_akhir));

                }

                return $nilai_bobot;

        }



ini di view-nya gan:




...

<?php $this->widget('zii.widgets.grid.CGridView', array(

	'id'=>'nilai-grid',

	'dataProvider'=>$model->search(),

        //filter'=>$model,

	'columns'=>array(

             'idKrs0.idKurikulum0.idMataKuliah0.nama_mata_kuliah',

              array(

                'header'=>'Nilai Akhir',

                'value'=>'floor((($data->nilai_hadir*0.1)+($data->nilai_tugas*0.2)+

                         ($data->nilai_uts*0.3)+($data->nilai_uas*0.4)))',

                ),

              array(

                'header'=>'Nilai Huruf',

                'value'=>'$data->Huruf',

                ),



nah pas dicoba hasilnya di kolom Nilai Huruf-nya kosong gan, ga ada nilainya.

1591

tampilan.JPG

Mohon pencerahannya gan,

static function itu bukannya manggilnya gak bisa pake "->"

bisa bos…kmrn nyoba buat footer di cgridview

kayanya seh ada yg rancu di fungsi getHuruf-nya…

Mohon agan2 beri pencerahan

klo dibikin relasi 1-1 boleh gak sih?. apa di yii mesti one-many?.

mungkin ane kurang ngerti Yii :D

Tapi klo ane pasti coba relasiin :D

2 putri langit : kayanya ga bisa, cos field nilai_akhir kan ga ada di tabel, itu didapat dr hasil perhitungan, jadi kalau direlasiin di modelnya kayanya ga bisa, tapi trims buat Post-nya

Hehehe…ternyata nilai_akhir gak ada di table ya?.

Klo dalem table kan enak. Bisa FindByAttribut :D

Jadi bikin

tb_nilai_akhir

==============

  • dalam_nilai

  • dalam_huruf

(klo sok tau nya saya itumah :P)

gpp,trims bwt Post-nya

udah nemu, ngerubah di viewnya




 array(

                'header'=>'Nilai Huruf',

                'value'=>'(Bobot::model()->find("nilai_akhir=:score",array(":score"=>(($data->nilai_hadir*0.1)+($data->nilai_tugas*0.2)+($data->nilai_uts*0.3)+($data->nilai_uas*0.4))))->huruf)',

                ),



itu relasi di model nya




public function relations()

	{

		// NOTE: you may need to adjust the relation name and the related

		// class name for the relations automatically generated below.

		return array(

			'idJadwal0' => array(self::BELONGS_TO, 'Jadwal', 'id_jadwal'),

			'nim0' => array(self::BELONGS_TO, 'BiodataMahasiswa', 'nim'),

			'idKurikulum0' => array(self::BELONGS_TO, 'Kurikulum', 'id_kurikulum'),

			'nilai1s' => array(self::HAS_MANY, 'Nilai1', 'id_krs'),

		);

	}