Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZF]Prosta obsługa bazy
klapaucius
post 28.11.2012, 17:14:39
Post #1





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

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


Mam problem w ZF, by pobrać z bazy danych rekordy. W pliku z zasobami mam coś takiego:
Kod
resources.db.adapter = "pdo_mysql"
resources.db.params.dbname = "wiersze"
resources.db.params.host = "localhost"
resources.db.params.username = "root"
resources.db.params.password = ""
resources.db.params.charset = "utf8"

W akcji kontrolera mam taki kod:
  1. public function indexAction()
  2. {
  3. $bootstrap = $this->getInvokeArg('bootstrap');
  4. $db = $bootstrap->getResource('db');
  5. $zapytanie = 'select * from wiersz order by id';
  6. $this->view->wiersze = $db->fetchAll($zapytanie);
  7. }

Jednak przy próbie odpalenia wyskakuje mi taki błąd:
Kod
Fatal error: Call to a member function fetchAll() on a non-object in D:\xampp\htdocs\wierszerozewicza\application\controllers\IndexController.php on line 16


Czyli chodzi o to, że zmienna $db w indexAction nie jest obiektem. Ale dlaczego?
Dopiero zaczynam przygodę z Zend więc proszę o wyrozumiałość. Pozdrawiam!

Ten post edytował klapaucius 28.11.2012, 17:15:19
Go to the top of the page
+Quote Post
cudny
post 28.11.2012, 19:10:21
Post #2





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

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


Musisz poczytać o MVC - to co robisz nie ma żadnego sensu i niestety musisz się tego nauczyć.
Po co mamy powtarzać tutki ?

Po polsku chyba najlepiej skorzystać z tego:
http://www.heavymind.net/zend-framework-tutorial/


--------------------
..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
Go to the top of the page
+Quote Post
klapaucius
post 28.11.2012, 19:48:07
Post #3





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

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


Cytat(cudny @ 28.11.2012, 19:10:21 ) *
Musisz poczytać o MVC - to co robisz nie ma żadnego sensu i niestety musisz się tego nauczyć.
Po co mamy powtarzać tutki ?

Po polsku chyba najlepiej skorzystać z tego:
http://www.heavymind.net/zend-framework-tutorial/

Zrobiłem ten projekt od nowa, i teraz o dziwo działa!
Widocznie przy czymś innym wcześniej zchrzaniłem.
Dlaczego uważasz, że "to co robię nie ma żadnego sensu", skoro okazuje się że kod ten działa jednak poprawnie?
Poza tym nie wymyśliłem go z głowy, tylko bazuje on na przykładzie z książki "Zend Framework od podstaw" wyd. Helion. Więc dlatego mnie to zdziwiło, że na początku nie działał.

W każdym razie może ustosunkujesz się do tego, dlaczego uważasz moją metodę (a raczej autora książki) odczytywania rekordów z bazy danych za złą i bez sensu? Być może masz rację, tylko to uzasadnij.

Pozdrawiam!

Ten post edytował klapaucius 28.11.2012, 19:49:15
Go to the top of the page
+Quote Post
Pilsener
post 28.11.2012, 21:01:06
Post #4





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

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


ZF to nie jest czysty MVC ale mniejsza o większość - chodzi o podział aplikacji na 3 warstwy:

1. Danych
2. Logiki
3. Prezentacji

Kontroler to warstwa logiki więc nie może zajmować się obsługą bazy czy przygotowywaniem danych. To zadanie dla modelu, który jest klasą w tym celu wyspecjalizowaną. Kontroler jedynie przekazuje dane z modelu do widoku (który jednak w ZF jest bardziej templatem).

W kontrolerze robisz coś w stylu:
  1. $model = new Model_Articles();
  2. $this->view->articles = $model->getAllArticles();


A w modelu:
  1. class Model_Articles extends Zend_Db_Table_Abstract {
  2. /**
  3. * The default table name
  4. */
  5. protected $_name = 'articles';
  6.  
  7. public function getAllArticles(){
  8. $select = $this->select();
  9. return $this->fetchAll($select);
  10. }
  11.  
  12. }
Go to the top of the page
+Quote Post
klapaucius
post 28.11.2012, 23:22:05
Post #5





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

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


Aha. No mniej więcej rozumiem o co chodzi. Czyli, to co powinienem robić w modelu, robię w kontrolerze.
No ale tak było to pokazane w książce. Być może autor chciał jedynie skupić się na pokazaniu jak pobierać te dane, natomiast nie zwracał uwagi już na poprawną architekturę i rozmieszczenie kodu. Z resztą nie wiem - nie mi to oceniać.

Tak apropos: możecie polecić jakiś tutorial odnośnie czystego MVC? Oczywiście o ile takowy istnieje. Nie ukrywam też, iż dobrze by było gdyby był on po polsku.

Pozdrawiam serdecznie!
Go to the top of the page
+Quote Post
cudny
post 28.11.2012, 23:26:45
Post #6





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

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


Ehh... Wejdź w ten link, który Ci podałem wyżej, ja jak zaczynałem pracę z ZF jakieś 4 lata temu to właśnie od tego tutka, na prawdę mi pomógł


--------------------
..::: Jak pomogłem to kliknij pomógł. Tak rzadko używacie tej opcji :( :::..
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: 28.04.2024 - 10:07