Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [ZF] problem z kontrolerem
phpion
post
Post #1





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




Hejka,
mam taką strukturę katalogów:
projekt
--- app
------ frontend
--------- controllers
------------ ArtykulController.php
--------- models
------------ Person
--------------- Person_Author.php
------------ Author.php
------------ Article.php
--------- views
--- lib
------ Zend
------ mojeklasy
--- www
------ .htaccess
------ index.php

index.php
  1. <?php
  2. require_once('./__autoload.php');
  3.  
  4. $db = new Zend_Db_Adapter_Pdo_Mysql(array(
  5. 'host'  => 'localhost',
  6. 'username' => 'root',
  7. 'password' => '',
  8. 'dbname'  => 'baza'
  9. ));
  10.  
  11. $db->setFetchMode(1);
  12.  
  13. Zend_Controller_Front::run('/home/phpion/public_html/nowy.benchmark.pl/app/frontend/controllers');
  14. ?>


ArtykulController:
  1. <?php
  2. class ArtykulController extends Zend_Controller_Action {
  3. public function pokazAction() {
  4. global $db;
  5.  
  6. $q = 'SELECT * FROM articles WHERE id=1';
  7. $q = $db->query($q);
  8. $q->setFetchMode(Zend_Db::FETCH_NUM);
  9.  
  10. $r = $q->fetch();
  11.  
  12. $this->article = new Article($r[0], $r[1], $r[2], $r[3]);
  13. $this->edek = "edek";
  14. }
  15. }
  16. ?>


Article.php
  1. <?php
  2. /**
  3.  * Klasa przechowująca dane na temat artykulu.
  4.  *
  5.  * @author phpion
  6.  */
  7. class Article {
  8. /**
  9.  * Identyfikator artykulu.
  10.  *
  11.  * @access protected
  12.  * @var string
  13.  */
  14. protected $id;
  15.  
  16. /**
  17.  * Tytul artykulu.
  18.  *
  19.  * @access protected
  20.  * @var string
  21.  */
  22. protected $title;
  23.  
  24. /**
  25.  * Data utworzenia artykulu.
  26.  *
  27.  * @access protected
  28.  * @var datetime
  29.  */
  30. protected $date;
  31.  
  32. /**
  33.  * Artykul widoczny lub ukryty/
  34.  *
  35.  * @access protected
  36.  * @var boolean
  37.  */
  38. protected $visible;
  39.  
  40. /**
  41.  * Tablica stron nalezacych do artykulu.
  42.  *
  43.  * @access protected
  44.  * @var array
  45.  */
  46. protected $pages = array();
  47.  
  48. /**
  49.  * Tablica autorow artykulu.
  50.  *
  51.  * Sklada sie z obiektow typu Person_Author
  52.  */
  53. protected $authors = array();
  54.  
  55. /**
  56.  * Tworzy obiekt artykulu.
  57.  *
  58.  * @access public
  59.  * @param integer $id Identyfikator artykulu.
  60.  * @param string $title Tytul calego artykulu
  61.  */
  62. public function __construct($id, $title, $date, $visible) {
  63. $this->id = (int)$id;
  64. $this->title = $title;
  65. $this->date = $date;
  66. $this->visible = $visible;
  67.  
  68. $this->loadAuthors();
  69. }
  70.  
  71. /**
  72.  * Wczytuje autorow danego artykulu.
  73.  *
  74.  * @access protected
  75.  */
  76. protected function loadAuthors() {
  77. global $db;
  78.  
  79. $q = 'SELECT authors.* FROM articles_authors LEFT JOIN authors ON articles_authors.aut
    hor_id=authors.id WHERE articles_authors.article_id='
    .$this->id.' ORDER BY authors.surname';
  80. $q = $db->query($q);
  81. $q->setFetchMode(Zend_Db::FETCH_NUM);
  82.  
  83. while ($r = $q->fetch()) {
  84. array_push($this->authors, new Person_Author($r[0], $r[1], $r[2], $r[3]));
  85. }
  86. }
  87. }
  88. ?>


Przy wywołaniu http://localhost/artykul/pokaz dostaję:
  1. Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)'
.
Modyfikując:
  1. <?php global $db; ?>

na:
  1. <?php $db = new Zend_Db_Adapter_Pdo_Mysql(array(
  2. 'host'  => 'localhost',
  3. 'username' => 'root',
  4. 'password' => '',
  5. 'dbname'  => 'baza'
  6. ));?>

wszystko śmiga tj. obiekty są tworzone poprawnie. Co robię źle? O czym zapomniałem?
Z góry dzięki za pomoc.

I przy okazji: czy każda akcja w kontrolerze musi posiadać swój plik widoku (jeśli dobrze to nazywam) w views/scripts/{$nazwa_kontrolera}/{$nazwa_akcji}? Aktualnie wgrywam tam puste pliki aby ominąć występujące błędy (podobne do powyższego).

Ten post edytował phpion.com 7.07.2007, 20:32:41
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 23:47