Creació d'URL personalitzat en ajudant Veure Zend
Això pot semblar simple, però jo estava colpejant el meu cap intentant crear una adreça URL en un ajudant de vista personalitzada en Zend Framework . Tinc la configuració d'enrutament que s'obté el mòdul de la sub-domini en ús, així que no podria utilitzar un URL codificada senzilla.
Bàsicament, sinó que invoca una instància del controlador frontal de la seva possible agafar el router i muntem una url. Ensamble és la funció utilitzada en l'ajudant de vista. La URL es construeix sobre un conjunt de mòdul, controlador, acció, etc, seguit d'un segon paràmetre de la ruta a utilitzar. El codi és el següent:
<? Php / ** * Veure ajuda que us retorna URL d'enllaç de la categoria * * @ Autor Lloyd Watkin * @ Des 2010.01.25 * @ Paquet ViewHelper * @ Subpaquete LinksUrl * / classe Pro_View_Helper_LinksUrl s'estén Zend_View_Helper_Abstract { / ** * Torna enllaç URL categoria * * @ Param $ Doctrine_Record categoria * @ Param cadena $ mòdul * @ Param $ cadena de comandament * @ Param cadena $ acció * @ Cadena retornada Url * / linksUrl funció pública ($ categoria, $ module = 'www', $ Control = 'enllaços', $ action = 'index') { $ Router = Zend_Controller_Front:: getInstance () -> getRouter (); return $ router-> muntar (array ( 'Module' => $ mòdul, 'Controller' => $ controlador, 'Acció' => $ action, "Categoria" => "{id $ categoria>} - {$ nom de la categoria->}", ), 'Www-index'); } }
Una altra forma de fer-ho és invocar Zend_View_Helper_Url si mateix i truqui al mètode Url (si voleu utilitzar el propi ajudant). Això es pot fer utilitzant el següent codi:
<? Php / ** * Veure ajuda que us retorna URL d'enllaç de la categoria * * @ Autor Lloyd Watkin * @ Des 2010.01.25 * @ Paquet ViewHelper * @ Subpaquete LinksUrl * / classe Pro_View_Helper_LinksUrl s'estén Zend_View_Helper_Abstract { / ** * Torna enllaç URL categoria * * @ Param $ Doctrine_Record categoria * @ Param cadena $ mòdul * @ Param $ cadena de comandament * @ Param cadena $ acció * @ Cadena retornada Url * / linksUrl funció pública ($ categoria, $ module = 'www', $ Control = 'enllaços', $ action = 'index') { link = $ Zend_View_Helper_Url nou (); return $ link-> url (array ( 'Module' => $ mòdul, 'Controller' => $ controlador, 'Acció' => $ action, "Categoria" => "{id $ categoria>} - {$ llimac}", ), 'Www-index'); } }
Tots dos gairebé idèntics. No és una cosa difícil de fer en el marc, però pot sorprendre;)


















































Vostè sap que podria haver utilitzat la vista d'objectes disponibles mitjançant l'ampliació de Zend_View_Helper_Abstract per cridar a la url d'ajuda existents, en lloc de crear un de nou.
Només ha de fer servir $ this-url-> Vista-> (...);