Memanggil Atribut Tabel Dengan Kondisi

para master yii semuanya mau tanya dong…

saya punya tabel naskah.ini sebagian fieldnya :

| id_naskah |id_pengirim | id_penerima |status inbox|

jadi ceritanya saya mau menampilkan JUMLAH data

1.yang STATUS INBOXNYA=belum dibaca DAN

2.yang ID PENERIMANYA=user yang sedang mengakses sistem.

MODEL nya saya buat kek gini:

const STATUS_DIBACA=1;

const STATUS_BELUMDIBACA=2;

public function getPendingInboxCount()

{


   return $this->count('stat_inbox='.self::STATUS_BELUMDIBACA);	


}

VIEW nya kek gini :

<?php echo CHtml::link(‘Inbox’,array(‘naskah/cari’)).’

(’.Naskah::model()->pendingInboxCount . ‘)’; ?>

nah yang berhasil ke itung jumlahnya baru yang STATUS INBOXNYA=belum dibaca saja.jadi yang ID PENERIMAnya bukan user juga ke itung.gimana supaya ID PENERIMANYA=user saja yang ke itung jumlahnya? mohon bantuannya ya para mastah sekalian.maap saya newbie pake banget

terima kasih

untuk tugas beginian enaknya pake AR scope, han2.

dengan asumsi id-nya user agan catat di session (CWebUser) waktu login, model Naskah.php-nya dimodif tambah ginian:


public function scopes() {

  return array(

    'unread'=>array(

      'condition'=>'stat_inbox=' . self::STAT_BELUMDIBACA,

    ),

    'received_by_user'=>array(

      'condition'=>'id_penerima=' . Yii:app()->user->id,

    ),

  );

}

lalu getPendingInboxCount-nya boleh dimodif gini:


public function getPendingInboxCount() {

  return count($this->received_by_user->unread->findAll());

}

Sisanya sama.

Oya sedikit saran aja, sebaiknya jangan manggil method non static secara static, jadi kalo manggilnya gini:


Naskah::model()->pendingInboxCount() 

cocoknya deklarasinya begini:


public static function getPendingInboxCount() {

  return count(Naskah::model()->received_by_user->unread->findAll());

}

referensi:

http://www.yiiframework.com/doc/guide/1.1/en/database.ar#named-scopes