Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [ZendFramework]Obsługa bazy danych
PawelC
post
Post #1





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Witam smile.gif
Wiem, że może trochę za dużo bym chciał, ale mógłby mi ktoś wyjaśnić jak wygląda w Zend Framework obsługa bazy danych, a dokładnie utworzenie modelu, przekazanie tego do kontroler i stamtąd do widoku, byłbym bardzo wdzięczny, nie chodzi mi o jakąś łopatologie, tylko prosty przykład. W necie czytałem co i jak, ale jest tak napisane że nic nie czaję i u mnie wywala same błędy.

Jak stworzyć kontroler i widok to wiem, ale nie mam za chiny pojęcia na temat obsługi bazy danych.

Ten post edytował ExPlOiT 26.01.2010, 22:47:19
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
W necie czytałem co i jak
Nie wiem w jakim necie to czytales, ale w manualu ZF masz to opisane dość dobrze.

Cytat
i u mnie wywala same błędy.
No to pokaz swoj kod i swoje bledy


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
PawelC
post
Post #3





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


  1. <h1><?php echo $this->escape($this->nazwa); ?></h1>
  2. <p>
  3. <a href="/zf-tutorial/index/add">Add new album</a>
  4. </p>
  5. <table>
  6. <tr>
  7. <th>Title</th>
  8. <th>Artist</th>
  9. <th> </th>
  10. </tr>
  11. <?php foreach($this->albums as $album) : ?>
  12. <tr>
  13. <td><?php echo $this->escape($album->nazwa);?></td>
  14.  
  15. <td><a href="/zf-tutorial/index/edit/id/<?php echo $album->id;?>">Edit</a><a href="/zf-tutorial/index/delete/id/<?php echo $album->id;?>">Delete</a></td>
  16. </tr>
  17. <?php endforeach; ?>
  18. </table>
To jest widok.


Model:

  1. <?php
  2.  
  3. $options = array(
  4.  
  5. Zend_Db::ALLOW_SERIALIZATION => false
  6.  
  7. );
  8.  
  9.  
  10.  
  11. $params = array(
  12.  
  13. 'host' => '127.0.0.1',
  14.  
  15. 'username' => 'root',
  16.  
  17. 'password' => '',
  18.  
  19. 'dbname' => 'download',
  20.  
  21. 'options' => $options
  22.  
  23. );
  24.  
  25.  
  26.  
  27. $db = Zend_Db::factory('Pdo_Mysql', $params);
  28.  
  29.  
  30.  
  31. $result = $db->fetchOne('SELECT * FROM gd_pliki WHERE id = 21');
  32.  
  33. echo $result;





Kontroler:

  1. <?php
  2.  
  3. class HelloController extends Zend_Controller_Action
  4. {
  5. function __construct()
  6. {
  7. parent::__construct();
  8. Zend::loadClass('album');
  9. }
  10.  
  11.  
  12. public function init()
  13. {
  14.  
  15. }
  16.  
  17. public function indexAction()
  18. {
  19. $view = Zend::registry('view');
  20. $view->title = "My Albums";
  21. $album = new Album();
  22. $view->albums = $album->fetchAll();
  23. $view->actionTemplate = 'index.php';
  24. echo $view->render('site.tpl.php');
  25.  
  26. }
  27.  
  28. }
Podejrzewam, że wszystko jest źle, ale właśnie dlatego prosiłem o jakiś przykład. Błąd dostaje taki:

Kod
Fatal error: Declaration of HelloController::__construct() must be compatible with that of Zend_Controller_Action_Interface::__construct() in C:\wamp\www\application\controllers\HelloController.php on line 31


Ten post edytował ExPlOiT 26.01.2010, 23:11:11
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No ale przeciez on ci się czepia do kontrolera a nie do modelu...
Poza tym kod, który szumnie nazwales MODEL nie ma nic wspolnego z tym co sie w ZF nazywa modelem. Weź najpierw przeczytaj tutorial na stronie zenda a dopiero jak go przejdzieszb bierz sie po malu za modele.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
PawelC
post
Post #5





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


I właśniego dlatego chciałem prosty przykład wykorzystania baz danych w ZF, i połączenie tego w jedną całość, no ale cóż może coś wymyśle.
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
no ale cóż może coś wymyśle.
Ale ty nic nie wymyslaj! Od tego masz tutka na stronie zenda o ktorym ci po raz kolejny wspominam. Przejdź najpierw go bo nie masz nawet podstaw by ruszac z zendem. Na forum naprawde nie zadaje sie pytan, na ktore odpowiedzi znajdziesz w innych ogolnie dostepnych tutkach.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
PawelC
post
Post #7





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Temat do zamknięcia, a ja sobie dam spokój bo nie mogę się połpać.
Go to the top of the page
+Quote Post
darko
post
Post #8





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Przykładowe wykorzystanie bazy danych w ZF:
w pliku /application/configs/application.ini ustawiamy zasoby do połączenia z bazą danych:
resources.db.adapter = pdo_mysql
resources.db.params.host = localhost

resources.db.params.username = USER
resources.db.params.password = PASSWORD
resources.db.params.dbname = NAZWA_BAZY

// ---------------------------------------------------
I gdzieś dalej w kodzie:
  1. //(jakaś klasa, np. jakiś model lub kontroler) {
  2. //...
  3. private $_db;
  4.  
  5. // (jakaś metoda, ale najlepiej konstruktor dla modelu lub metoda init w przypadku kontrolera) {
  6. //...
  7. $this->_db = Zend_Db_Table::getDefaultAdapter();
  8. $this->_db->getConnection();
  9. //...
  10. // robimy insert do tabeli test:
  11. $data = array('nazwa_kolumny_1' => 'wartosc_kolumny_1');
  12. $this->_db->insert('NAZWA_TABELI', $data);
  13. //...
  14. }
  15. }
  16. // ---------------------------------------------------


Ten post edytował darko 26.01.2010, 23:40:29


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
PawelC
post
Post #9





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Wreszcie zakumałem wszystko o co mi chodziło smile.gif Nawet przekazywanie wyników zapytania do widoku biggrin.gif Wielkie dzięki za pomoc smile.gif
Go to the top of the page
+Quote Post
darko
post
Post #10





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Cytat(ExPlOiT @ 26.01.2010, 23:33:14 ) *
Temat do zamknięcia, a ja sobie dam spokój bo nie mogę się połpać.

A już chciał się poddać tongue.gif


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
PawelC
post
Post #11





Grupa: Zarejestrowani
Postów: 1 173
Pomógł: 121
Dołączył: 24.09.2007
Skąd: Toruń

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


Bo sto razy łatwiej jest mi coś zrozumieć, jak mi ktoś wyjaśni, niż jakbym miała samemu do tego dojść, tymbardziej, że jak zrobiłem wszystko zgodnie z tutorialem to miałem same błędy.
Go to the top of the page
+Quote Post
nospor
post
Post #12





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
, że jak zrobiłem wszystko zgodnie z tutorialem to miałem same błędy.
A w ktorym miejscu tego tutoriala kazali ci pisac kontruktor do kontrolera?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Aktualny czas: 21.08.2025 - 21:08