![]() |
![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 30.07.2006 Skąd: okolice Elbląga Ostrzeżenie: (0%) ![]() ![]() |
Witam wszystkich!
Otoż mój problem polega na tym, że w pliku app_controller.php chcę utworzyć funkcję, która będzie wykorzystawana w różnych miejscach strony. Wygląda ona następująco:
Chodzi tutaj głównie o linijkę, z zapytaniem do bazy danych: $ret = $this->User... Otóż to zapytanie działa tylko wtedy gdy korzystam z modelu User, a gdy np. chce tą funkcję wykorzystać, np. w modelu Koty to otrzymuję taki błąd: Kod Notice: Undefined property: AppController::$User in /... Fatal error: Call to a member function query() on a non-object in /... Nie mam pojęcia jak to zrobić aby to działało we wszystkich modelach. Proszę o pomoc!! --- Pozdrawiam Kacperix Ten post edytował kacperix 3.09.2006, 11:41:34 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 627 Pomógł: 33 Dołączył: 1.05.2005 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
zrob to jako komponent i zaladuj w app_cont.
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 37 Pomógł: 0 Dołączył: 30.07.2006 Skąd: okolice Elbląga Ostrzeżenie: (0%) ![]() ![]() |
Witam!
No niestety nie podziałało to co polecił Normanos. Rozwiązałem problem w ten sposób: Linijkę z poniższym kodem: Kod $ret = $this->User->query("SELECT value FROM config WHERE name='".$name."'"); Zmieniłem na linijkę: Kod $ret = $this->{$this->modelClass}->query("SELECT value FROM config WHERE name='".$name."'"); Jak narazie nie otrzymuję żadnych błedów dotyczących tej funkcji. Dzięki i pozdrowienia dla wszystkich. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 35 Pomógł: 0 Dołączył: 12.07.2006 Ostrzeżenie: (0%) ![]() ![]() |
moznaby wrzucic ta funkcje do app_model i wtedy masz $this->query()
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 40 Pomógł: 0 Dołączył: 19.12.2006 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Temat co prawda dość stary, ale jako, że sam zaczynam dopiero z cakePHP, to wiem, że często można właśnie ucząc się znaleźć przydatne informacje w dość starych postach. W związku z tym piszę tą odpowiedź.
Podane wyżej przez innych rozwiązania wydają mi się niezgodne z zamysłem autorów frameworka. Moim zdaniem, jeśli chcesz w innych kontrolerach wykorzystywać kod ściśle związany z Configiem, powinieneć w klasie ConfigController wstawić odpowiednią funkcję, np:
a następnie wywoływać ją w innych kontrolerach za pomocą funkcji requestAction(), na przykład:
Celowo nie zmieniałem w pierwszym bloku kodu funkcji, żeby wszystko było jasne, ale myślę, że funkcja powinna bardziej wykorzystywać elementy cakePHP, jak poniżej:
Ten post edytował wojtek.zielinski 12.12.2007, 00:06:04 -------------------- |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 08:35 |