Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Prekazywanie wartosci między klasami Undefined property
Forum PHP.pl > Forum > Przedszkole
Muadib
Ot mi sie problem narodził pisze sobie skromne MVC gdzie wszytko ładnie model dane presyła do kontrolera i kontroler wybiera widok i nagle bum Undefined property: addressesView::$showAddresses kod jest prosty i przedstawia sie następująco

  1. class controllerLib
  2. {
  3. function __construct()
  4. {
  5. $this->view = new view();
  6. }
  7. }
  8.  
  9. class controller extends controllerLib
  10. {
  11. function __construct()
  12. {
  13. parent::__construct();
  14. }
  15.  
  16. public function addresses($arg = false) //metoda kontrolera
  17. {
  18. echo'Addresses '.$arg.'<br />';
  19.  
  20. $this->view->render('addressesView');
  21. $this->view->showAddresses = $this->model->getAddresses();
  22. }
  23. }


tu wszytko ładnie z modelu jest przesyłane spprawdzilem sobie showAddresses wypełnia wartość zwracana

  1. class view
  2. {
  3. function __construct()
  4. {
  5. }
  6.  
  7. public function render($plik)
  8. {
  9. $render = new $plik();
  10. }
  11. }
  12.  
  13. class addressesView extends view
  14. {
  15. function __construct()
  16. {
  17. parent::__construct();
  18.  
  19. require 'view/head.php';
  20.  
  21. $result = $this->showAddresses;
  22.  
  23. echo $result;
  24.  
  25. require 'view/foot.php';
  26. }
  27. }
  28.  


I tu sie pojawia problem nie mam pojęcia co go wywołuje siedze juz nad tym troche i w kropce jestem
irmidjusz
Odwołujesz się do (próbujesz pobrać wartość) zmiennej obiektowej $this->showAddresses, która nie jest zadeklarowana ani w klasie addressesView ani w klasie view.

Błąd "Undefined property" oznacza "niezdefiniowana właściwość".
abort
  1. class controllerLib
  2.  
  3. {
  4. function __construct()
  5. {
  6. $this->view = new view();
  7. }
  8.  
  9. }


A co to jest za konstrukcja $this->view? "view" to obiekt, ok... Ale skąd klasa 'controller' (potomna) ma się o tym dowiedzieć, czy ma dziedziczyć, czy nie? Deklarujesz/definiujesz ją gdzieś? Bo nie widzę...
Muadib
parent::__construct(); chyba konstruje konstruktor klasy nadrzędnej w podrzędnej, inaczej renderowanie widoku by nie działało przy metodzie render pobieranej z klasy view

W każdym razie dodałem na początku addressView public $showAddresses; błąd zniknął tylko zmienna jest nadal pusta sad.gif a w kontrollerze pełna ohmy.gif nie jest to tablica tylko wynik funkcji json_encode;
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.