【发布时间】:2011-12-18 00:10:22
【问题描述】:
我已经通过 Jobeet Tutorial 将 Zend Lucene 集成到 symfony (1.4.8) 项目中,以便将搜索功能添加到我的网站前端(通过索引)。其中,关键概念是在模型的save 操作(需要被覆盖)期间使用updateLuceneIndex 以创建/更新特定条目的索引。
我的模型有i18n 字段,其中一些(即name、title)我想插入到索引中。一切都按预期工作,但是当将i18n 字段保存到索引中时,我得到的只是空白值($this->getName() 返回空字符串)。我正在使用Luke 检查创建的索引。
我最终发现这与 Zend Lucene 无关,而与 symfony 无关。在save 期间,i18n 字段的信息似乎不可用(或者是吗?)。我也尝试在preSave()、postSave() 期间连接更新,但无济于事。
所以我想问一下,我应该如何在保存操作期间获取模型的 i18n 字段值以便相应地更新索引?
重要提示:这只发生在doctrine:data-load 任务期间。如果我手动插入或更新记录,则索引会相应更新。
最后一个相关问题。如果我可以为模型字段的每种语言保存不同的关键字,那就太好了。如何获取模型中每个字段语言的不同值?
【问题讨论】:
-
为了回答我的第二个问题,我发现使用
$this->Translation['<culture>']['<field>']成功返回了培养字段的值。即使这在data-load任务中不起作用(总是在save模型的方法中)
标签: zend-framework symfony1 internationalization lucene symfony-1.4