Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]OOP, Kohana - Jak odwołać się do metody z innego kontrolera?
adrianpl20
post
Post #1





Grupa: Zarejestrowani
Postów: 111
Pomógł: 16
Dołączył: 20.02.2014

Ostrzeżenie: (10%)
X----


Witam. Piszę stronę z pomocą framework'a Kohana. W kontrolerze z "Aktualnościami" użytkownika chcę pobrać i wyświetlić mu posty. Post składa się z: avatar + nick + treść + kategorie (lista rozwijana). W innym kontrolerze, np. grupy czy profil uzytkownika także będę musiał wyświetlić posty. Aby nie pisać kodu kilka razy i nie zaśmiecać głównego kontrolera (Aktualnosci) chciałem przenieść odpowiednie metody do pasujących kontrolerów. Np. pobranie kategorii do postu chciałem umieścić w kontrolerze 'Posts' (będzie możliwość podglądu postu, więc ten kontroler się do tego przyda później), ale wyświetla mi błąd, zapewne nie można nawet tak tego robić. Czy jest możliwość odwołania się do metody w innym kontrolerze?

oto kod:
  1. $controller_Posts = new Controller_Posts;
  2. $array_categories = $controller_Posts->get_categories_list();


i oto błąd:
Cytat
ErrorException [ Recoverable Error ]: Argument 1 passed to Kohana_Controller::__construct() must be an instance of Request, none given, called in C:\xxx\application\classes\Controller\Newsfeed.php on line 118 and defined


// edit
Aha i żeby ktoś nie pomyślał, że ta metoda powinna być w Modelu. Oczywiście jest metoda w modelu pobierająca z pliku listę kategorii, ale ta metoda z Kontrolera odwołuje się do Modelu, bo jeszcze kategorie potrzebują obróbki i dlatego nie ma funkcji stąd bezpośrednio do Modelu.

Ten post edytował adrianpl20 18.07.2014, 13:17:15
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Turson
post
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

Ostrzeżenie: (0%)
-----


Pobieranie kategorii powinno odbywać się w modelu a nie kontrolerze.
Go to the top of the page
+Quote Post
skowron-line
post
Post #3





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Jezeli dobrze pamietam to musisz to zrobic przez
  1. Request::factory('controller:action')


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
adrianpl20
post
Post #4





Grupa: Zarejestrowani
Postów: 111
Pomógł: 16
Dołączył: 20.02.2014

Ostrzeżenie: (10%)
X----


dodałem edit ws. tego modelu
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 08:31