login  Naam:   Wachtwoord: 
Registreer je!
 Nota's op tutorial:

Tutorials > PHP > Websites maken met Zend Framework: deel 4/5
Pagina:

Reacties op de tutorial Websites maken met Zend Framework: deel 4/5


Offline  zamna
Gepost op: 09 september 2007 - 18:26
HTML beginner

In je model geef je aan welke tabel je gaat gebruiken. Maar wat als je een join wilt gebruiken, dan heb je meerdere tabellen nodig ?

Je kan de Zend_Db_Select-component gebruiken maar dit is zonder de Zend_Db_Table-class die je extend. Hoe kan je dat dan toch integreren in ons MVCpattern ?

Offline  Stijn
Gepost op: 09 september 2007 - 23:01
PHP expert

Ja, daar heb ik ook wat naar gezocht en toch kan je het met Zend_Db_Table. Ik schrijf er een tutorial voor, maar je kan alle informatie vinden op de volgende link als je niet kan wachten.

http://framewor...ationships

Offline  Wijnand
Gepost op: 30 oktober 2007 - 15:26
Moderator

Ik krijg hier een error:


Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in C:\wamp\www\Zend\library\Zend\Controller\Dispatcher\Standard.php:194 Stack trace: #0 C:\wamp\www\Zend\library\Zend\Controller\Front.php(920): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 C:\wamp\www\Zend\index.php(32): Zend_Controller_Front->dispatch() #2 {main} thrown in C:\wamp\www\Zend\library\Zend\Controller\Dispatcher\Standard.php on line 194


How? Why? What?

Offline  Wijnand
Gepost op: 30 oktober 2007 - 15:49
Moderator

Het ligt denk ik aan de model...

als ik $projects = new Projects(); eruithaal dan krijg ik niet die error maar gewoon een "nette" error (als dat al bestaat).

Offline  Stijn
Gepost op: 30 oktober 2007 - 19:25
PHP expert

Zet eens een try{...}catch(..){...} rondom de action waarin je de model oproept. Dan ga je een menselijke error krijgen.

  1. public function indexAction()
  2. {
  3.  
  4. try {
  5. $projects = new Projects();
  6. $projects->fetchAll();
  7. } catch( Exception $e ) {
  8. die( $e->getMessage() );
  9. }
  10.  
  11. }

Offline  Wijnand
Gepost op: 31 oktober 2007 - 09:00
Moderator

Ok cooll....

The mysql driver is not currently installed

Opgelost.. de extension pdo_mysql.dll was niet aangezet.

Offline  DMM
Gepost op: 17 december 2007 - 16:51
PHP beginner

Had dezelfde fout als Wijnand, bedankt Stijn!

Offline  avdg
Gepost op: 29 december 2007 - 20:47
PHP gevorderde

Ik krijg deze error:

[error]Fatal error: Uncaught exception 'Zend_Controller_Dispatcher_Exception' with message 'Invalid controller specified (error)' in D:\www\htdocs\projecten\myaccountonline.be\library\Zend\Controller\Dispatcher\Standard.php:198 Stack trace: #0 D:\www\htdocs\projecten\myaccountonline.be\library\Zend\Controller\Front.php(929): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http)) #1 D:\www\htdocs\projecten\myaccountonline.be\index.php(21): Zend_Controller_Front->dispatch() #2 {main} thrown in D:\www\htdocs\projecten\myaccountonline.be\library\Zend\Controller\Dispatcher\Standard.php on line 198[/error]

en helaas werken de vorige nota's niet, hij leest niet eens de controllers 
Eigenlijk zit ik maar aan deel 2... 
How? Why? What?

Edit: Nota: de links die verwijzen naar plaatscode zijn dood 

Edit: dom foutje: ik had de controller index.php genoemd ipv indexController.php  

Offline  Diko
Gepost op: 11 februari 2008 - 17:33
PHP interesse

Wat mij opvalt is dat je bij GalleryController::addAction en editAction $this->render(); buiten het else block zet. Maar bij deleteAction plaats je deze erbinnen.

Voor de werking maakt het uiteraart niets uit. Na de _redirect kom je niet meer bij render().

Verder is het niet onbelangrijk om te melden dat je de database configuratie moet doen _voor_ $controller->dispatch();
(hieruit valt op te maken dat ik het fout deed  )

Voor de rest toppie!

Offline  Thomas
Gepost op: 16 december 2013 - 19:20
Moderator

5 jaar na dato toch nog een reactie ;).

Is er een speciale reden waarom de verwerking van een formulier en het afdrukken van een formulier in eenzelfde action staan gedefinieerd? Persoonlijk zou ik de voorkeur hebben voor aparte actions omdat deze beide andere doelen dienen, dus bijvoorbeeld een gallery/add-action voor het afdrukken van het formulier voor het toevoegen van een gallery-item, en een gallery/addProcess-action voor het valideren/verwerken/redirecten van dat formulier.

Ik denk dat deze scheiding de leesbaarheid en het overzicht ten goede komen.

Nadeel is mogelijk wel dat je wat extra moeite moet doen om ingevulde waarden terug te zetten in de invulvelden als blijkt dat het formulier niet goed valideert (tijd voor Zend_Session? ).

In het verlengde hiervan: de form-action kun je in de controller-action meegeven met bijvoorbeeld (in zijn simpelste vorm):
EDIT: naam moet in lowercase :/

  1. $this->view->formAction = $this->_helper('addprocess');


_helper->url() voert de direct() methode uit van Zend_Controller_Action_Helper_Url die op zijn beurt de simple()-methode variant van deze klasse aanroept (in de meest recente versie van Zend Framework 1 (op het moment van schrijven 1.12.3)).

Ik denk dat het definieren van de form-action in de controller(action) de meest voor de hand liggende plaats is.

Er zijn vast nog meer/andere "best practises" (ik weet (nog) niet echt of bovenstaande hier ook onder vallen).

Offline  Stijn
Gepost op: 02 januari 2014 - 20:51
PHP expert

Helemaal out of date deze tutorial maar wel een basis. Ik volg de wijzigingen niet meer sinds de release van ZF 2.0. Heb mijn interesses op andere zaken gestort.

Pagina:

Enkel aanvullende informatie is welkom. Geen prijzende of afkeurende reacties.
 
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.031s