Filtrowanie w gridzie

Mam taki problem. 3 tabele.

  1. Programy (TblPrograms)

  2. Płatności (TblPayments)

  3. tabela łącząca obie, jako że produkt może mieć wiele płątności(TblPaymentDict)

Relacje są takie:

Programy:

‘tblPayment’ => array(self::MANY_MANY, ‘TblPayment’, ‘tbl_payment_dict(id_program, id_payment)’),

Płatności:

‘programs’ => array(self::MANY_MANY, ‘TblPrograms’, ‘tbl_payment_dict(id_payment, id_program)’),

No i mam grida, gdzie dla danego programu, w kolumnie płatności mogą się pojawić więcej jak jedna opcja (stąd tabela łącząca). To działa. Nie działa natomiast filtrowanie.

            array(


                'name' => 'id_payment',


                'filter'=>$model->getPaymentList(),


                'value'=>'$data->getRelatedPayments()',


            ),     





    public function getPaymentList()


    {


        $categoryArray = CHtml::listData(TblPaymentDict::model()->findAll(), 'id_program', 'id_program');


        return $categoryArray;


    }  

Nie wiem jak to ugryźć, jak powinno wyglądać zapytanie i czy w ogóle dobry kierunek obrałem :confused: