私はCakePHP 3.4を使用していますが、スペイン語(es
)がデフォルトのロケールであるデュアル言語のWebサイトで使用しています。私は、フィールドslug
ためTranslateBehavior
を実装MangasTable
を持っていると私は次のようである、それを照会しようとしている:TranslateBehaviorはデフォルトのロケールではデフォルトのフィールドを使用しません
$manga = $this->Mangas->find()
->select([
'id',
'nombre'
])
->where([$this->Mangas->translationField('slug') => $slug])
->firstOrFail();
点であり、一部$this->Mangas->translationField('slug')
がために私に翻訳エイリアスフィールドを取得しますスラグ。多かれ少なかれ、Mangas_slug_translation.content
。それは英語としてローカライズされても問題ありませんが、デフォルトのスペイン語では、この言語のi18n
テーブルにエントリがないため、何も返しません。ポーランド人のアプローチは、言語の条件があり、それを$field
変数に割り当てることですが、それはあまりうまく見えません。
他の方法がありますか、何か不足していますか?