2009-11-03 5 views
2

J'essaie de faire fonctionner le comportement translate, j'ai supprimé les comlumns traduits de la table d'origine et maintenant je reçois des erreurs lors de l'exécution de la requête suivante:CakePHP i18n, translate behavior, erreur de colonne inconnue lors de l'utilisation de find() avec conditions

$menu = $this->Menu->find('first', array('conditions' => array('Menu.title' => 'main-nav'))); 

Mon modèle Menu:

<?php 
class Menu extends AppModel { 
    var $name = 'Menu'; 

    var $actsAs = array(
     'Translate' => array(
      'title', 'link_title', 'path' 
     ), 
     'Tree' 
    ); 

    /*var $belongsTo = array('Content'); disabled for now.. */ 
} 
?> 

Voici le SQL/erreur générée:

Warning (512): SQL Error: 1054: Unknown column 'Menu.title' in 'where clause' [CORE/cake/libs/model/datasources/dbo_source.php, line 525] 

Query: SELECT `Menu`.*, `I18n__title`.`content`, `I18n__link_title`.`content`, `I18n__path`.`content` FROM `ags_menus` AS `Menu` LEFT JOIN `ags_i18n` AS `I18n__title` ON (`Menu`.`id` = `I18n__title`.`foreign_key` AND `I18n__title`.`model` = 'Menu' AND `I18n__title`.`field` = 'title') LEFT JOIN `ags_i18n` AS `I18n__link_title` ON (`Menu`.`id` = `I18n__link_title`.`foreign_key` AND `I18n__link_title`.`model` = 'Menu' AND `I18n__link_title`.`field` = 'link_title') LEFT JOIN `ags_i18n` AS `I18n__path` ON (`Menu`.`id` = `I18n__path`.`foreign_key` AND `I18n__path`.`model` = 'Menu' AND `I18n__path`.`field` = 'path') WHERE `Menu`.`title` = 'main-nav' AND `I18n__title`.`locale` = 'en_gb' AND `I18n__link_title`.`locale` = 'en_gb' AND `I18n__path`.`locale` = 'en_gb' LIMIT 1 

Évidemment Im obtenir l'erreur parce que la colonne n'existe plus dans le modèle Menu/table, mais j'ai supposé que le comportement de traduction s'est automagically pris en charge de cela?

Répondre

4

j'ai réussi à trouver une solution:

'conditions' => array('I18n__title.content' => 'main-nav') 
Questions connexes