【发布时间】:2018-06-16 00:12:06
【问题描述】:
帮助! 所以,我从文档中完成了每一步。
1.向表格模型添加行为
public function initialize(array $config) {
$this->addBehavior('Translate', ['fields' => ['title']]);
2.向实体模型添加特征
class Article extends Entity {
use TranslateTrait;
3.我使用 cake 文档中的 sql 代码创建了 i18n 表。
CREATE TABLE i18n (
id int NOT NULL auto_increment,
locale varchar(6) NOT NULL,
model varchar(255) NOT NULL,
foreign_key int(10) NOT NULL,
field varchar(255) NOT NULL,
content text,
PRIMARY KEY (id),
UNIQUE INDEX I18N_LOCALE_FIELD(locale, model, foreign_key, field),
INDEX I18N_FIELD(model, foreign_key, field)
);
4. 像这样创建输入(基于蛋糕文档):
<?php echo $this->Form->input('_translations.fr.title') ?>
当我提交表单时,所有内容都正确保存在 i18n 表中。 i18n table screenshot
但是!,当我尝试阅读翻译时,它不存在。 我是这样做的:
$article = $this->Articles->get($id);
我可以阅读所有属性,但翻译的属性除外。
此代码返回 null:
<?php var_dump($article->translation('fr')->title); ?>
我做错了什么?
【问题讨论】:
标签: php internationalization cakephp-3.0