cakephp извлекает весь перевод

#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']);
  

официальный документ извлекает все переводы