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
<?php require_once('./__autoload.php'); 'host' => 'localhost', 'username' => 'root', 'password' => '', 'dbname' => 'baza' )); $db->setFetchMode(1); Zend_Controller_Front::run('/home/phpion/public_html/nowy.benchmark.pl/app/frontend/controllers'); ?>
ArtykulController:
<?php class ArtykulController extends Zend_Controller_Action { public function pokazAction() { $q = 'SELECT * FROM articles WHERE id=1'; $q = $db->query($q); $q->setFetchMode(Zend_Db::FETCH_NUM); $r = $q->fetch(); $this->article = new Article($r[0], $r[1], $r[2], $r[3]); $this->edek = "edek"; } } ?>
Article.php
<?php /** * Klasa przechowująca dane na temat artykulu. * * @author phpion */ class Article { /** * Identyfikator artykulu. * * @access protected * @var string */ protected $id; /** * Tytul artykulu. * * @access protected * @var string */ protected $title; /** * Data utworzenia artykulu. * * @access protected * @var datetime */ protected $date; /** * Artykul widoczny lub ukryty/ * * @access protected * @var boolean */ protected $visible; /** * Tablica stron nalezacych do artykulu. * * @access protected * @var array */ /** * Tablica autorow artykulu. * * Sklada sie z obiektow typu Person_Author */ /** * Tworzy obiekt artykulu. * * @access public * @param integer $id Identyfikator artykulu. * @param string $title Tytul calego artykulu */ public function __construct($id, $title, $date, $visible) { $this->id = (int)$id; $this->title = $title; $this->date = $date; $this->visible = $visible; $this->loadAuthors(); } /** * Wczytuje autorow danego artykulu. * * @access protected */ protected function loadAuthors() { $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'; $q = $db->query($q); $q->setFetchMode(Zend_Db::FETCH_NUM); while ($r = $q->fetch()) { } } } ?>
Przy wywołaniu http://localhost/artykul/pokaz dostaję:
.
Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)'
Modyfikując:
na:
'host' => 'localhost', 'username' => 'root', 'password' => '', 'dbname' => 'baza' ));?>
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).