cakephp检索所有翻译

时间:2016-10-09 18:23:29

标签: cakephp cakephp-3.0

我想知道如何使用cakephp 3.3检索查询中的翻译。 我已在表格中添加了:

$this->addBehavior('Translate', ['fields' => ['textContent']]);

这是我的疑问:

$query = $objTable->find('all')
     ->where(['admin_template_id' => $id])
     ->contain(['AdminObjects']);

我已经尝试过这个:

$query = $objTable->find('all')
         ->where(['admin_template_id' => $id])
         ->contain(['AdminObjects', 'translations']);

但是返回错误500。

我的翻译表与cakephp文档相同:

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)
);

如何在查找所有查询中完成翻译?

由于

1 个答案:

答案 0 :(得分:1)

您可以使用'all'的find方法'translate'instate。

for (int i = 1; i < array.length - 2; i++) {
    // do your job
}

的实例
$query = $objTable->find('translations')
 ->where(['admin_template_id' => $id])
 ->contain(['AdminObjects']);

officeial Doc Retrieve All Translations