2

1)コントローラー「カレンダー」があり、URLを介して日付を取得するアクション「showDate」があります。したがって、URL は「calendar/show-date/date/2012-07-22」のようなものです。

2) すべてのエントリを表示するリンク「calendar/」があります。

そこで、リンクが「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);

Zend_Translate が適切な言語を設定できるように、URL に言語 ID (上記の例では :locale と呼ばれます) を含める必要があります。

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

カスタムルートを設定する必要があります。これが私のやり方です:

フォルダー 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 に答える
0

calendarのすべての呼び出しをkalendarに再​​ルーティングできます。2 つの可能性があります。Zend を使用するか (推奨)、Web サーバーの構成を変更して、カレンダーへの呼び出しを HTTP 302 で書き換えます (醜い)。

ただし、公式のZend ドキュメントを参照する必要があります。これはかなり優れています。

于 2012-06-22T11:27:48.023 に答える