如何在发送之前捕获请求的控制器/操作值?

时间:2009-09-08 14:51:19

标签: php zend-framework

Zend Framework:

I have the following url  /base/url/[number]/[string] 
OR                        /base/url/action/controller/param/value

我想在/base/url/[number]/[string]的情况下将其转换为 /碱/ URL /控制器/一个/动作/ 1B / 1D / [数] /名称/ [字符串] a和b是常数(即每当我在动作的位置看到一个数字时,我使用相同的值)。
在发送动作和控制器值之前,我在哪里可以捕获它们?

2 个答案:

答案 0 :(得分:2)

您可以在routeShutdown()中选择控制器插件中的操作和控制器(在选择路由后)或在preDispatch()中(在每个控制器调度之前)。我想你会使用routeShutdown。您有可访问的请求,因此您可以将控制器和操作设置为任何内容..

How to write plugins

答案 1 :(得分:0)

您可以创建自定义路由来处理这种路由,并将它们分派到正确的控制器和URL。

例如:

$router = $front->getRouter();
$router->addRoute(
    'my_route',
    new Zend_Controller_Router_Route(
         ':number/:string',
         array(
              'controller' => 'your_controller',
              'action' => 'your_action'
         )
    )
);
相关问题