login  Naam:   Wachtwoord: 
Registreer je!
 Forum

ZF [Router + Url (View helper)]

Offline Wouser - 19/12/2008 20:33 (laatste wijziging 19/12/2008 20:35)
Avatar van WouserPHP interesse Ik zit met het volgende probleem... De url view helper, die standaard bij het Zend framework zit gooit steeds met een foutmelding bij mij zodra ik een router ga toevoegen bij de parameters van de helper)

Ik heb mijn router gedefinieerd in een xml schema...
  1. <?xml version="1.0"?>
  2. <configdata>
  3. <router>
  4. <contact>
  5. <type>Zend_Controller_Router_Route_Regex</type>
  6. <route>contact.html</route>
  7. <defaults>
  8. <controller>contact</controller>
  9. <action>index</action>
  10. </defaults>
  11. </contact>
  12. </router>
  13. </configdata>


In mijn index laad ik hem gewoon in...
  1. $frontcontroller->getRouter()->addConfig(new Zend_Config_Xml('./application/router.xml'), 'router');


Vervolgens op index.phtml van me contactController gooi ik dit eruit...
  1. <?= $this->url(array(), 'contact') ?>


In dat geval krijg ik een mooie 500 error waarna ik de volgende leuke error krijg gelogd van zend.

  1. 2008-12-19T20:22:22+01:00 DEBUG (7): Cannot assemble. Reversed route is not specified.\n#0 C:\xampp\htdocs\weblog\library\Zend\Controller\Router\Rewrite.php(377): Zend_Controller_Router_Route_Regex->assemble(Array, false, true)
  2. #1 C:\xampp\htdocs\weblog\library\Zend\View\Helper\Url.php(49): Zend_Controller_Router_Rewrite->assemble(Array, 'contact', false, true)
  3. #2 C:\xampp\htdocs\weblog\library\Zend\View\Abstract.php(318): Zend_View_Helper_Url->url(Array, 'contact')
  4. #3 [internal function]: Zend_View_Abstract->__call(Array, Array)
  5. #4 C:\xampp\htdocs\weblog\templates\twotenths\view\contact\index.phtml(46): Zend_View->url('url', Array)
  6. #5 C:\xampp\htdocs\weblog\library\Zend\View.php(107): include('C:\xampp\htdocs...')
  7. #6 C:\xampp\htdocs\weblog\library\Zend\View\Abstract.php(787): Zend_View->_run(Array, 'contact')
  8. #7 C:\xampp\htdocs\weblog\library\Zend\Controller\Action\Helper\ViewRenderer.php(902): Zend_View_Abstract->render('.\templates\two...')
  9. #8 C:\xampp\htdocs\weblog\library\Zend\Controller\Action\Helper\ViewRenderer.php(923): Zend_Controller_Action_Helper_ViewRenderer->renderScript('contact/index.p...')
  10. #9 C:\xampp\htdocs\weblog\library\Zend\Controller\Action\Helper\ViewRenderer.php(962): Zend_Controller_Action_Helper_ViewRenderer->render('contact/index.p...', NULL)
  11. #10 C:\xampp\htdocs\weblog\library\Zend\Controller\Action\HelperBroker.php(276): Zend_Controller_Action_Helper_ViewRenderer->postDispatch()
  12. #11 C:\xampp\htdocs\weblog\library\Zend\Controller\Action.php(513): Zend_Controller_Action_HelperBroker->notifyPostDispatch()
  13. #12 C:\xampp\htdocs\weblog\library\Zend\Controller\Dispatcher\Standard.php(285): Zend_Controller_Action->dispatch()
  14. #13 C:\xampp\htdocs\weblog\library\Zend\Controller\Front.php(934): Zend_Controller_Dispatcher_Standard->dispatch('indexAction')
  15. #14 C:\xampp\htdocs\weblog\index.php(176): Zend_Controller_Front->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
  16. #15 {main}


Verder werkt $this->url() wel gewoon alleen dit geeft /weblog/contact terug. Terwijl dit toch automatisch (volgens mij) ook eigenlijk al /weblog/contact.html moet zijn...

Iemand misschien enig idee...?

2 antwoorden

Gesponsorde links
Offline avdg - 21/12/2008 02:34 (laatste wijziging 21/12/2008 02:44)
Avatar van avdg PHP gevorderde eens dit geprobeerd:

{applicatie}View/Helper/BaseUrl.php
  1. class Zend_View_Helper_BaseUrl
  2. {
  3. function baseUrl()
  4. {
  5. $fc = Zend_Controller_Front::getInstance();
  6. return $fc->getBaseUrl();
  7. }
  8. }


gebruik:
  1. <?php echo $this->baseUrl();?>{jouw pad}


Veel suc6  

Edit: oh ja: ik raad je aan om deze tutorial eens zeker door te nemen: http://akrabat....rk-152.pdf

Edit2: de eerste parameter bij $this->url() hoort zo te zijn:
$this->url(array('controller'=>'controller',
'action'=>'action' [, 'par1'=>$par1->var [,...]]));
Offline Wouser - 22/12/2008 19:49 (laatste wijziging 22/12/2008 19:58)
Avatar van Wouser PHP interesse BaseUrl helper had ik al ;) maar ik ga even je tweede edit proberen ;)

Geen effect trouwens (had eigenlijk ook verwacht) omdat de url helper het in principe wel doet alleen als ik de naam van de router aan toevoeg gaat het mis omdat hij zegt dat ie hem niet kan vinden...
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.2s