我正在使用Zend Framework 2开发一个Web应用程序。
我想实现自动内置的当前区域设置的网址,即/ 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的新手。
答案 0 :(得分:1)
安装 PHP intl
扩展程序。
答案 1 :(得分: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扩展!