Cgridview, Buttons, Url-E Do Różnych Widoków

Witam

Mam pytanie, jak mogę wygenerować url-e do przycisków w cgridview, które nie będą wpisane "na sztywno". Chodzi mi o to, że załóżmy mam kontroler Obserwacje, w którym wyświetlam obserwacje z innych kontrolerów, np. ObserwacjePtaki, ObserwacjeSsaki. W przypadku gdy rekord należy do ObserwacjePtaki, wygenerowany url w buttonie powinien być np: birds/view/id/, analogicznie - wgdy mam rekord w kontrolerze ssaki, chcę wygenerować taki link: mammals/view/id. Wiem, że mój opis wydawaj się może skomplikowany, więc ponieżej wkleiłem pastebin z moim kodem.

http://pastebin.com/fcUZzMd4

Dzięki za pomoc

Tomek

Cześć,

Jeżeli dobrze zrozumiałem to możesz przekazać nazwę kontrolera lub akcji tak:




//nazwa kontrolera

Yii::app()->controller->id

//nazwa akcji

Yii::app()->controller->action->id



Tak Viktor,dzięki za odpowiedź, w ten sposób mogę wyświetlić nazwę kontrolera, ale będzie to nazwa aktualnie wywołanego kontrolera (z którego wyświetlony jest widoczny na ekranie widok). Ja zaś chcę wyświetlić linki do akcji w innych kontrolerach i wtedy to rozwiązanie się nie sprawdzi …

No to może tak:




//zapis do zmiennej np w obserwatorze

Yii::app()->params['abc'] = 123;

//odczyt w widoku

Yii::app()->params['abc']



musisz mieć w main.php skonfigurowaną tablicę params. Więcej na temat params http://www.yiiframework.com/wiki/242/yii-registry-how-to-use-it-is-it-exists-at-all/

Myślę, że w obu modelach możessz dodać funkcję zwracającą właściwy link




        public function getLink()

        {

                return 'observationsBirds/view lub observationsMammals/view'; //lub cały link z użyciem createUrl lub CHtml i $this->id

                

        }


         //lub prościej 


         public link = 'observationsBirds lub observationsMammals';


        

W widoku będziesz mógł wykorzystać $data[link].

Daj znać czy zadziałało bo sam nie mam pewności

Dzięki za wasze wszystkie wskazówki i podpowiedzi. Jeśli ktoś jest zainteresowany, odpowiedź umieściłem w tym wątku: http://www.yiiframework.com/forum/index.php/topic/42047-cgridview-button-url-to-many-views/page__p__199977__fromsearch__1#entry199977

Pozdrawiam