Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 致命错误:类';Zend#u地区';找不到_Php_Zend Framework_Localization_Zend Framework2 - Fatal编程技术网

Php 致命错误:类';Zend#u地区';找不到

Php 致命错误:类';Zend#u地区';找不到,php,zend-framework,localization,zend-framework2,Php,Zend Framework,Localization,Zend Framework2,我正在用Zend Framework 2开发一个web应用程序 我想通过自动内置的当前语言环境实现URL,即/locale/controller/action/等等。我写了以下内容: <?php $locale = new Zend_Locale(); ?> <ul class="nav"> <li> <a href="/<?php echo $locale->getLanguage(); ?>/devic

我正在用Zend Framework 2开发一个web应用程序

我想通过自动内置的当前语言环境实现URL,即/locale/controller/action/等等。我写了以下内容:

<?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>
在我的应用程序/view/layout/layout.phtml中

但是,我只知道这个

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

怎么了?我忘了一些“用途”?抱歉,我是php新手。

必须安装php
intl
扩展。

好的,我刚刚解决了

上面的代码是相对于较旧版本的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扩展

Zend_Locale
是一种Zend1本地化方法。看:谢谢你,伙计!明白了:我找不到了!也许我使用的是旧版本的framework代码?您安装了intl扩展吗?是的,但问题不是由于缺少intl造成的。在Zend 2中,Zend_Locale类似乎不再存在。
<?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>