【问题标题】:Forwarding a request with custom routes in zend framework在 zend 框架中使用自定义路由转发请求
【发布时间】:2012-01-24 09:46:59
【问题描述】:

我正在使用 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

控制器名称是 resources 以下是控制器的代码:-

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();
   }

}

请帮帮我。

【问题讨论】:

  • 只是出于好奇,你试过没有那个 die();在您的 checkfiletypeAction 函数结束时?
  • 是的,我试过了,但没有成功

标签: zend-framework


【解决方案1】:

您将数字作为文件类型传递,并检查单词:

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


//controller    
case 'css' :

更改大小写以匹配数字:

//controller
case '3' :

【讨论】:

  • 这不是问题。只有当我尝试将请求转发到资源操作时,我才会遇到问题。如果将请求转发到另一个控制器,它可以正常工作,但我的要求是在同一个控制器上移动请求
  • 对不起,我看错了原始代码。您正在使用正则表达式路由,并且将第三个括号作为此参数传递。你能做一个fileType的var_dump吗?确认具体提供了什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多