首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >具有动态复合动作的Zend路由?

具有动态复合动作的Zend路由?
EN

Stack Overflow用户
提问于 2013-06-06 00:26:58
回答 2查看 402关注 0票数 0

有没有办法编写具有动态复合动作的Zend路由,即将多个匹配模式或匹配模式与静态文本的组合组合在一起的动作?

示例:

代码语言:javascript
复制
uri -> desired action
/company/unique-product-code/overview -> product-overview
/company/unique-product-code/gallery -> product-gallery
/company/unique-product-code/... -> product-...

当前代码(不起作用):

代码语言:javascript
复制
$regexp = new Zend_Controller_Router_Route_Regex(
    '^(company)/([a-z-]+)/([a-z-]+)/?',
    array(),
    array(1 => 'controller', 2 => 'productCode', 'product-3' => 'action')
);
EN

回答 2

Stack Overflow用户

发布于 2013-06-06 08:39:13

我找到了你问题的几个答案。我猜这一切都取决于你想要如何构建你的Zend框架软件。

据我所知,您有一个名为Company的控制器。然后,它有各种动作,包括productOverviewAction()等。

所以,这里有几个“差不多”的解决方案--然后我将解决你目前的困境。:)

第一个可能答案

您可能希望使用控制器Company来获取公司特定信息。也许您可以制作一个名为Product的控制器来提供产品信息。然后,您实际上会想要转到类似于/product/ would id/overview- nice的内容。下面是与之匹配的路径:

代码语言:javascript
复制
$route = new Zend_Controller_Router_Route(
    'product/:productCode/:action',
    array(
        'controller'=>'product'
    )
);

如你所见,它甚至不是一个正则表达式,所以它可以很快!

第二个可能答案

需要正则表达式的原因是,操作与url不匹配,而是由url的一部分组成。但是,假设您将Company::productOverviewAction()更改为Company::OverviewAction() -然后可以使用以下路径:

代码语言:javascript
复制
$route = new Zend_Controller_Router_Route(
    'company/:productCode/:action',
    array(
        'controller'=>'company'
    )
);

但是,我知道这不是你想要的.

几乎完全正确的答案

无需修改路由类,即可使用以下路由器:

代码语言:javascript
复制
$route = new Zend_Controller_Router_Route(
    'company/:productCode/:action',
    array(
        'controller'=>'company'
    )
);

然后,因为它被定向到每个操作,所以您可以代理CompanyController中的操作。例如:

代码语言:javascript
复制
public function overviewAction()
{
    return $this->productOverviewAction();
}

*注意:我没有使用_forward()作为不重新调度(我认为会发生这种情况...)

祝你好运!

票数 1
EN

Stack Overflow用户

发布于 2013-06-06 01:53:01

实际上,我不认为使用标准路由类可以做到这一点。您可以扩展路由器、扩展regexp路由类或使用控制器插件来操作匹配的操作名称;但实际上,如果您可以更改控制器中的操作名称以匹配URL中的操作,则会容易得多。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16945138

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档