Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Instancja klasy - nie dziala
Forum PHP.pl > Forum > PHP
Luke_Star
A wiec mam maly problem i nie znam przyczyny problemow, jest to cóś ala MVC niestety nie przekazuje mi obiektow i musze sie bezposrednio odowlywac do metody :/ (Klasa::metoda).
No to teraz troche kodu:
TO jest zadeklarowana klasa DataAcces:
  1. <?php
  2. class DataAccess {
  3. var $query;
  4. //konstuktor
  5. function querys($query) {
  6. //..
  7. }
  8. }
  9. ?>


i klase modelu:

  1. <?php
  2. class CategoryModel {
  3. var $dao;
  4.  
  5. function CategoryModel(& $dao) {
  6. $this->dao=$dao;
  7. }
  8. //inne metody...
  9. }
  10. ?>


no i na koncu jak chce to polaczyc czyli zeby model mogl korzystac z metod DataAccess. Oto kod ktory jakos nie dziala i niewiem czemu...

  1. <?php
  2. $dao=& new DataAccess('localhost','user','pass','baza');
  3. $categoryModel=& new CategoryModel($dao);
  4. ?>


niestety po uzyciu w Modelu:
  1. <?php
  2. $this->dao->querys('zapytanie');
  3. ?>

wywala mi piekny blad "Call to nonobject function[...]". Tak wiec nie wiem o co chodzi :| teoretycznie obiekt powinien byc przekazywany i mozliwy do uzycia no ale nie jest...
domis86
1. nie robi sie czegos takiego :
  1. <?php
  2. $cos = &new Klasa;
  3. ?>

tylko tak:
  1. <?php
  2. $cos = new Klasa;
  3. ?>


2.w category model zmien tą funkcje na taką:
  1. <?php
  2. function CategoryModel(& $dao)
  3. {
  4. $this->dao=$dao;
  5. var_dump($this->dao);
  6. }
  7. ?>

i zobacz co zwraca
Luke_Star
zrobilem sobie:
  1. <?php
  2. function CategoryModel(& $dao) {
  3. $this->dao=$dao;
  4. print_r(get_class_methods($this->dao));
  5. }
  6. ?>


i co zabawne zwracami ze ze obiekt ma w sobie metody, ale gdy w tym samym modelu lec zinnej metodzie uzyje $this->dao->querys() stwierdza ze tego czegos nie ma :|

wykonanie konstruktora i dopisanie wartosci do zmiennej $dao powinno byc w miare trwale tzn. być dostępne dla innych metod klasy, po za tym zmienne klasy DataAccess są dostepne po dopisaniu wartosci a nastepnie wykonaniu echo() wartosc jest ladnie drukowana. Niestety metody sa jakby niedostepne...

pomoze ktos?
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.