2016-10-09 4 views
0

Ich würde gerne wissen, wie man eine Übersetzung in einer Abfrage mit CakePHP 3.3 abrufen. Ich habe bereits in der Tabelle hinzugefügt:cakephp alle Übersetzung abrufen

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

Dies ist meine Frage:

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

ich dies bereits versucht haben:

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

Aber gibt mir Fehler 500

Meine Übersetzungstabelle ist die selbe der cakephep Dokumentation:

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

Wie kann ich fin Übersetzung in einem alle Abfrage finden?

Dank

Antwort

1

Sie verwenden Methode 'Übersetzungen' instate von 'all' finden.

versuchen

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

instate von

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

officeial Doc Retrieve All Translations