0

Zend Framework 2 で Web アプリを開発しています。

現在のロケールが自動的に組み込まれた URL、つまり /locale/controller/action/etc を実現したいと考えています。私はこれを書きました:

<?php

$locale = new Zend_Locale();

?>

<ul class="nav">
    <li>
        <a href="/<?php echo $locale->getLanguage(); ?>/devices">Devices</a>
        <ul>
            <li>
                <a href="/devices/add"><img src="img/navbar/add.png" alt="+"> Add</a>
            </li>
        </ul>
    </li>
    <li>
        <a href="/<?php echo $locale->getLanguage(); ?>/favorites">Favorites</a>
        <ul>
            <li>
                <a href="/favorites/add"><img src="img/navbar/add.png" alt="+"> Add</a>
            </li>
        </ul>
    </li>
</ul>

この方法で含めるnavbar.phtmlファイルに入れます

include("navbar.phtml");

私のApplication/view/layout/layout.phtmlで。

しかし、私はこれだけを得る

Fatal error: Class 'Zend_Locale' not found in blabla\module\Application\view\layout\navbar.phtml on line 3

どうしたの?私はいくつかの「用途」を忘れていますか?申し訳ありませんが、私はphpの初心者です。

4

2 に答える 2

0

わかりました、解決しました。

上記のコードは、古いバージョンの Zend Framework に関連しています。

Zend Framework 2 では、正しいコードは次のとおりです。

<?php

$translator = new Zend\I18n\Translator\Translator();
$locale = substr($translator->getLocale(), 0, 2);

?>

<ul class="nav">
    <li>
        <a href="/<?php echo $locale ?>/devices">Devices</a>
        <ul>
            <li>
                <a href="/<?php echo $locale ?>/devices/add"><img src="img/navbar/add.png" alt="+"> Add</a>
            </li>
        </ul>
    </li>
    <li>
        <a href="/<?php echo $locale ?>/favorites">Favorites</a>
        <ul>
            <li>
                <a href="/<?php echo $locale ?>/favorites/add"><img src="img/navbar/add.png" alt="+"> Add</a>
            </li>
        </ul>
    </li>
</ul>

intl PHP 拡張機能を有効にすることを忘れないでください!

于 2013-08-28T12:58:48.830 に答える