#cakephp #cakephp-3.0
#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)
);
Как я могу завершить перевод внутри запроса find all?
Спасибо
Ответ №1:
Вы можете использовать метод поиска «translations» вместо «all».
попробуйте
$query = $objTable->find('translations')
->where(['admin_template_id' => $id])
->contain(['AdminObjects']);
установить
$query = $objTable->find('all')
->where(['admin_template_id' => $id])
->contain(['AdminObjects']);
официальный документ извлекает все переводы