在zend框架中使用自定义路由转发请求

时间:2012-01-24 09:46:59

标签: zend-framework

我正在使用zend框架中的自定义路由。我成功管理了我的自定义路线 但我有一个问题,即我想在路由后根据某些预定义的条件转发请求,但我无法转发我的。我没有收到任何错误。

以下是路由配置文件的代码 -

; ---多个请求的路由

routes.resource.route = "resource/:moduleName/:fileType/"
routes.resource.defaults.controller = resources
routes.resource.defaults.module = 'default'
routes.resource.defaults.action = 'index'

; ---为单曲文件路由

routes.resourceCSS.type = "Zend_Controller_Router_Route_Regex"
routes.resourceCSS.route = "resource/(\w+)/([a-zA-z0-9]+\.([a-zA-z0-9]+))"
routes.resourceCSS.defaults.module = 'default'
routes.resourceCSS.defaults.controller = "resources"
routes.resourceCSS.defaults.action = checkfiletype
routes.resourceCSS.map.moduleName = 1
routes.resourceCSS.map.fileName = 2
routes.resourceCSS.map.fileType =  3

控制器名称为资源 Follwoing是控制器的代码: -

class ResourcesController extends Zend_Controller_Action
{


   public function checkfiletypeAction()
   {
       var_dump($this->_getAllParams());
       $moduleName = $this->getRequest()->getParam('moduleName');
       $fileName = $this->getRequest()->getParam('fileName');
       $fileType = strtolower($this->getRequest()->getParam('fileType'));

       switch($fileType)
       {
        case 'css' :
            echo $fileType ;
            $this->_forward('css') ;
            break ;
        case 'js' :
            $this->_forward('js') ;
            break ;
        default :
            break;

       }

       die();
   }


   public function cssAction()
   {
      var_dump($this->_getAllParams());
      die();

   }

   public function jsAction()
   {
      var_dump($this->_getAllParams());
      die();
   }

}

请帮帮我。

1 个答案:

答案 0 :(得分:1)

您传入的是数字作为文件类型,并检查单词:

;ini file
routes.resourceCSS.map.fileType =  3


//controller    
case 'css' :

更改大小写以匹配数字:

//controller
case '3' :