Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Instancja klasy - nie dziala
Luke_Star
post 22.06.2007, 22:09:41
Post #1





Grupa: Zarejestrowani
Postów: 129
Pomógł: 2
Dołączył: 17.01.2005

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


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...

Ten post edytował Luke_Star 23.06.2007, 09:52:41


--------------------
Słowa, słowa, słowa... - Hamlet || Funkcje, funkcje, funkcje... - Luke Star
--------------------------------------
Portal Literacki: ( |||------- ) 30%
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
domis86
post 23.06.2007, 13:37:30
Post #2





Grupa: Zarejestrowani
Postów: 255
Pomógł: 5
Dołączył: 20.03.2007
Skąd: Kraków

Ostrzeżenie: (30%)
XX---


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
Go to the top of the page
+Quote Post
Luke_Star
post 24.06.2007, 17:10:19
Post #3





Grupa: Zarejestrowani
Postów: 129
Pomógł: 2
Dołączył: 17.01.2005

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


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?

Ten post edytował Luke_Star 25.06.2007, 09:17:56


--------------------
Słowa, słowa, słowa... - Hamlet || Funkcje, funkcje, funkcje... - Luke Star
--------------------------------------
Portal Literacki: ( |||------- ) 30%
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 Wersja Lo-Fi Aktualny czas: 19.07.2025 - 01:32