2

1)我有一个控制器“日历”,并有一个动作“showDate”,它通过url获取日期。所以,网址类似于“日历/显示日期/日期/2012-07-22”

2)我有一个显示所有条目的链接,“日历/”

所以,我想创建路线,使我的链接看起来像“kalendar/2012-07-22”和“kalendar/”。

谁能帮我?

4

4 回答 4

2

根据这篇文章: http ://www.zf.fr/forum/viewtopic.php?id=5138

解决方案是将 '@locale' => $lang 添加到参数中。

$this->url(array('lang'=>'it','@locale'=>'it'))

它对我来说效果很好。

于 2013-09-14T03:53:59.310 回答
1

我一直在研究用 Zend_Translate 翻译 URL,我遇到了这个网站的插件,它试图自动翻译 URL 段(模块/控制器/操作)。

http://blog.helmich.cz/305-howto-simple-multilingual-routes-in-zend-framework/

好消息是它是一个修改后的自定义路由器类,其功能类似于 Zend_Router,因此它相对比较熟悉。

$pages = new MyApp_Controller_Router_Route(
    ':locale/:@controller/:@action/*',
    array(
        'controller' =>; 'index',
                'action'     => 'index',
                'locale'     => 'cs'
            )
);

$router->addRoute('pages',$pages);

您需要在您的 URL 中有一个语言 ID(在上面的示例中称为 :locale),以便您的 Zend_Translate 可以设置正确的语言。

www.example.com/en/calendar/2012-06-22/
www.example.com/fr/calendrier/2012-06-22/
www.example.com/de/kalender/2012-06-22/
www.example.com/it/calendario/2012-06-22/

我只是稍微玩了一下这个概念,但我记得它有希望。您必须更加熟悉 Zend_Translate: http: //framework.zend.com/manual/en/zend.translate.html

我希望这会有所帮助!

干杯!

于 2012-06-22T13:18:37.243 回答
0

您可以将calendar的所有调用重新路由到kalendar。有两种可能性,要么使用 Zend(首选),要么更改 Web 服务器配置以使用 HTTP 302重写对日历的调用(丑陋)。

但是,您应该查阅Zend官方文档,这非常好

于 2012-06-22T11:27:48.023 回答
0

您必须设置自定义路线,这是我的方式:

在文件夹 application/configs/ 创建名为“routes.ini”的文件

将您的路线放入文件中:

;index-homepage, parameter date isn't required
;"index" is key of your route
routes.index.route = "kalendar/:date" 
routes.index.defaults.controller = calendar
routes.index.defaults.action = show
routes.index.defaults.date =

因此,在您的 bootstrap.php 中定义该配置文件:

protected function _initRoute() {
    $router = Zend_Controller_Front::getInstance()->getRouter();
    $router->addDefaultRoutes();

    $config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/routes.ini');
    $router->addConfig($config, 'routes');
}

就是这样,你可以调用 URL

www.website.com/kalendar

www.website.com/kalendar/2012-1-1

有关详细信息,请参阅此问题中的答案: Zend Framework 中的简单重写

于 2012-06-22T12:04:27.013 回答