Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Wczytanie klas modelu do widoku?
Pytajka
post 23.04.2012, 09:53:45
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 6.09.2011

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


Witam,

mam pewien problem, otóż nie wiem w jaki sposób przekazać z modelu do widoku odpowiednie dane.

Katalog wygląda tak -



Działanie jest następujące index.php w katalogu głównym wywołuje bootstrap.php ( libs), który na podstawie linku ładuje określony kontroller z katalogu controllers, ten następnie za pomocą view.php ( libs), ładuje odpowiedni widok. W widoku mam odwołania do metod z klas w modelu, problem w tym, że tak jakby nie współpracują razem.

Każdy wywołany kontroler ( katalog controllers) dziedziczy główny kontroler ( libs), a z niego konstruktor w którym znajduje się metoda

  1. function __autoload( $class){
  2.  
  3. require_once 'models/class.'. $class .'.php';
  4.  
  5. }


Ten post edytował Pytajka 23.04.2012, 09:59:23
Go to the top of the page
+Quote Post
Crozin
post 23.04.2012, 10:04:06
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Cytat
[...] problem w tym, że tak jakby nie współpracują razem.
I czym objawia się brak tej współpracy?
Go to the top of the page
+Quote Post
Pytajka
post 23.04.2012, 10:06:28
Post #3





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 6.09.2011

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


Cytat(Crozin @ 23.04.2012, 11:04:06 ) *
I czym objawia się brak tej współpracy?


Cytat
Notice: Undefined variable: brick in /opt/lampp/htdocs/testi/view/index.php on line 15

Fatal error: Call to a member function loadAll() on a non-object in /opt/lampp/htdocs/test/view/index.php on line 15


Przy wywołaniu w widoku $brick->loadAll();
Go to the top of the page
+Quote Post
Crozin
post 23.04.2012, 10:32:56
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Undefined variable: brick - to jest chyba dosyć wymowne, racja? A późniejszy błąd jest konsekwencją tego.
Go to the top of the page
+Quote Post
Pytajka
post 23.04.2012, 10:37:55
Post #5





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 6.09.2011

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


Tak, wiem, dlatego pytam jak mam przekazać dane z modelu do widoku?
Go to the top of the page
+Quote Post
Crozin
post 23.04.2012, 11:16:45
Post #6





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Nawet nie wiem do czego odesłać osobę, która nie potrafi przekazać zmiennej z jednego obiektu do drugiego...
http://www.php.net/manual/en/language.oper....assignment.php
http://www.php.net/manual/en/function.return.php
?
Go to the top of the page
+Quote Post
Pytajka
post 23.04.2012, 15:21:09
Post #7





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 6.09.2011

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


Tyle to ja wiem, tylko nie wiem gdzie wywołać odpowiednią klasę, aby widok miał do niej dostęp.
Go to the top of the page
+Quote Post
Orzeszekk
post 23.04.2012, 22:30:41
Post #8





Grupa: Zarejestrowani
Postów: 260
Pomógł: 14
Dołączył: 8.09.2011

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


Nie ma lepszego sposobu na nauczenie sie MVC jak praca na uznanym i dobrze napisanym frameworku ktory wymusza pewne konwencje kodowania.

Najlepszym frameworkiem MVC jaki znam jest asp.net mvc ale to nie ten język więc jak sie domyslam symfony2 również powinno dać radę.
naprawde szkoda tracic czasu na wynajdywanie koła na nowo.


--------------------
"The first 90 percent of the code accounts for the first 90 percent of the development time. The remaining 10 percent of the code accounts for the other 90 percent of the development time."
Tom Cargill, Bell Labs
Go to the top of the page
+Quote Post
Cysiaczek
post 2.05.2012, 23:25:58
Post #9





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Jeśli definiujesz w kontrolerze zmienne, które potem mają znaleźć się w widoku, to dobrym rozwiązaniem jest utworzenie kontenera (obiektu), który przechowuje wartości wraz z nazwami pod jakimi mają występowac w widoku.
  1. function __construct(){
  2. $this->DataContainer=new ViewDataContainer();
  3. }
  4.  
  5. function myAction(){
  6. $this->setVar('nazwa', 'wartosc');
  7. }
  8.  
  9. function setVar($sName, $mValue){
  10. $this->DataContainer->add($sName, $mValue);
  11. }
  12.  


Teraz taki obiekt rozpakowujesz za pomoca funkcji extract()
przed includowaniem pliku szablonu
To oczywiście najprostsze rozwiązanie, nie pozbawione wad.

Pozdrawiam
Powód edycji: [Cysiaczek]:


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
marcio
post 3.05.2012, 09:09:01
Post #10





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

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


Przepraszam ze stocze na chwile z tematu, jesli post uznacie za nie na miejscu prosze usunac.

Cytat
To oczywiście najprostsze rozwiązanie, nie pozbawione wad.

Czy moglbys napisac wady tego rozwiazania i zalety innych?(mowa o extract)


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
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.04.2024 - 02:14