1)コントローラー「カレンダー」があり、URLを介して日付を取得するアクション「showDate」があります。したがって、URL は「calendar/show-date/date/2012-07-22」のようなものです。
2) すべてのエントリを表示するリンク「calendar/」があります。
そこで、リンクが「kalendar/2012-07-22」と「kalendar/」のようになるようにルートを作成したいと思います。
誰でも私を助けることができますか?
1)コントローラー「カレンダー」があり、URLを介して日付を取得するアクション「showDate」があります。したがって、URL は「calendar/show-date/date/2012-07-22」のようなものです。
2) すべてのエントリを表示するリンク「calendar/」があります。
そこで、リンクが「kalendar/2012-07-22」と「kalendar/」のようになるようにルートを作成したいと思います。
誰でも私を助けることができますか?
この投稿によると: http://www.zf.fr/forum/viewtopic.php?id=5138
解決策は、パラメータに '@locale' => $lang を追加することです。
$this->url(array('lang'=>'it','@locale'=>'it'))
それは私にとって非常にうまく機能します。
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
それが役立つことを願っています!
乾杯!
カスタムルートを設定する必要があります。これが私のやり方です:
フォルダー 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 での単純な書き換え
calendarのすべての呼び出しをkalendarに再ルーティングできます。2 つの可能性があります。Zend を使用するか (推奨)、Web サーバーの構成を変更して、カレンダーへの呼び出しを HTTP 302 で書き換えます (醜い)。
ただし、公式のZend ドキュメントを参照する必要があります。これはかなり優れています。