2009-11-03 2 views
2

변환 동작을 작동 시키려고했는데 변환 된 comlumn을 원래 테이블에서 삭제했지만 다음 쿼리를 수행 할 때 오류가 발생합니다.조건부로 find()를 사용할 때 CakePHP i18n, translate behavior, unknown 열 오류가 발생했습니다.

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

내 메뉴 모델 : 여기

<?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.. */ 
} 
?> 

는 SQL/오류가 생성됩니다 :

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 
,

분명히 메뉴 모델/테이블에 더 이상 열이 없기 때문에 오류가 발생했지만 번역 동작이 자동으로 처리됩니다.

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

답변

4

나는 해결책을 찾기 위해 관리
관련 문제