【发布时间】:2017-08-05 15:13:04
【问题描述】:
我使用的是 CakePHP 3.4,我将它用于双语言网站,其中西班牙语 (es) 是默认语言环境。我有一个MangasTable,它为字段TranslateBehavior 实现了slug,我正在尝试查询它,如下所示:
$manga = $this->Mangas->find()
->select([
'id',
'nombre'
])
->where([$this->Mangas->translationField('slug') => $slug])
->firstOrFail();
重点是,$this->Mangas->translationField('slug') 部分将为我提供 slug 的翻译别名字段。或多或少,Mangas_slug_translation.content。当它被本地化为英语时很好,但使用默认的西班牙语,因为在i18n 表中没有该语言的任何条目,它什么也没有返回给我。穷人的方法是为语言设置一个条件并将其分配给$field 变量,但这看起来不太好。
还有其他方法吗,还是我遗漏了什么?
【问题讨论】:
标签: internationalization cakephp-3.0 behavior