Pobierz Dane Na Podstawie Skomplikowanej Relacj

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

Cześć

Wcześniej już omawialiśmy, proszę link http://www.yiiframework.com/forum/index.php/topic/41206-problem-z-odniesieniem-sie-do-danych-z-relacyjnie-powiazanej-tabeli/page__view__findpost__p__196582

Viktor, dziękuję Ci za pomoc, ale to co podałeś mi w linku powyżej, ja zastosowałem i opisałem w pierwszym moim wpisie, przed Twoją odpowiedzią. Moje pytanie jest takie, jak mam zdefiniować relację w modelu Obserwacje, skoro nie mogę do zdefiniowania relacji w w/w modelu użyć żadnego pola z modelu Obserwacje? Owszem wyświetlanie danych relacyjnych w modelu Obserwacje z modelu GrupyGatunkow mi działa, (gdyż w widoku Obserwacje mam zdefiniowane takie reguły:




                array(

                    'name'=>'grupa_szukaj',

                    'value'=>'$data->idGatunku->nazwaGrupy->nazwa'), 



aczkolwiek jak próbuję wyszukać dane korzystając z pola tekstowego $grupa_szukaj to wyskakuje mi błąd. Problemem napewno są tutaj te wpisy:




$criteria->compare('idGatunku.nazwaGrupy.nazwa', $this->grupa_szukaj, true );  

$criteria->compare('idGatunku->nazwaGrupy->nazwa', $this->grupa_szukaj, true ); 



tylko jak to zrobić, aby poprawnie zdefiniować $criteria->compare w funkcji search() modelu Obserwacje?

Pozdrawiam

p.s. Solved, jak ktoś jest zainteresowany, tutaj mam rozwiązanie: http://www.yiiframework.com/forum/index.php/topic/41908-dataprovider-with-complicated-relations/page__gopid__199511#entry199511