【发布时间】:2009-05-27 10:01:52
【问题描述】:
我对 cakePHP 有一些疑问,我花了很长时间在谷歌上搜索解决方案,但由于我没有找到任何解决方案,我不确定我是否采取了正确的方法。
所以,我有一个菜单/站点地图,它部分是静态的(xml 文件 - i10n),部分是动态的(数据库 i18n)
我被要求缓存菜单,以便:
如果每种语言不存在,组件会为整个菜单创建一个缓存 xml 文件
帮助程序从组件创建的 xml 文件创建缓存 html
布局使用helper在页面中添加菜单
问题:
如何从帮助程序和组件中获取可用语言列表?
-
这是
$this->L10n = new L10n(); $this->L10n->lang获取实际语言的正确方法?
-
如果我在 app_controller 中导入助手/组件,而不是在每个控制器中输入它们
class AppController extends Controller { var $components = array('menu', 'otherComponent'); var $helpers = array('menuCache'); function beforeFilter(){ $this->menu->doSomething(); } }
我在布局中为echo $html->charset(); 得到一个call to undefined object $html
不明白为什么……
【问题讨论】:
-
我不知道 L10n 的问题,但你得到“未定义的 $html”的原因是因为你写了 $helpers = array('menuCache');默认情况下,cake 也将 HtmlHelper 放在那里,您也需要这样做(以及 Javascript 和您使用的其他工具)。即 $helpers = array('Html', 'Javascript', 'menuCache', etc...);
标签: cakephp internationalization multilingual