Witam. Mam taką sytuację, z którą nie mogę sobie poradzić.
Mam 3 tabele(i jednocześnie modele) oraz zdefiniowane w modelach relacje:
Obserwacje(id, id_gatunku); relacje:'idGatunku' => array(self::BELONGS_TO, 'Gatunki', 'id_gatunku'),
Gatunki(id,nazwa_gatunku,id_grupy ); relacje:'nazwaGrupy' => array(self::BELONGS_TO, 'GrupyGatunkow', 'id_grupy'),
GrupyGatunkow(id, nazwa) (bez relacji)
Dodatkowo w modelu Obserwacje mam zdefiniowaną $public grupa_szukaj oraz w funkcji search mam dodane $criteria kryteria:
$public grupa_szukaj;
$criteria->with = array('idGatunku');
Moje pytanie jest następujące: w jaki sposób mogę dokonać wyszukiwania w widoku Obserwacje na podstawie nazwy z modelu GrupyGatunkow (wiem, że muszę zdefiniować w funkcji search w modelu Obserwacje kryterium wyszukiwania, ale te zdefiniowane poniżej przeze mnie nie działają:
$criteria->compare('idGatunku.nazwaGrupy.nazwa', $this->grupa_szukaj, true );
$criteria->compare('idGatunku->nazwaGrupy->nazwa', $this->grupa_szukaj, true );
p.s. oto mój kod w widoku obserwacje
<?php $this->widget('bootstrap.widgets.TbGridView',array(
'dataProvider'=>$model->search(),
'columns'=>array(
array(
'name'=>'grupa_szukaj',
'value'=>'$data->idGatunku->nazwaGrupy->nazwa'),
array(
'class'=>'bootstrap.widgets.TbButtonColumn',
),
),
)); ?>
Z góry dziękuję za pomoc
Pozdrawiam