내가 내 모델 중 하나에 행동을 번역 부착하고 나는이에 대한 몇 가지 단점이 있습니다
1) 내가 전달되는 모든 분야에서 데이터를 저장하지 않는 경우 모델에 비헤이비어를 첨부 할 때 params로 $ Model :: find() 메서드는 삽입 된 행을 가져 오지 않습니다.
public $actsAs = array(
'Translate' => array(
'title' => 'title_Translation',
'description' => 'description_Translation',
'description_long' => 'description_long_Translation'
)
);
예 : 내가 $Model::save()
방법 'title'
에만 값으로 전달하는 경우, 데이터가도 국제화 테이블에 저장되어 있지만 $Model::find()
아무것도하지 않습니다. 모든 분야의 데이터를 전달해야합니다.
강제로 해당 레코드를 검색 할 수 있습니까?
2) 응용 프로그램의 관리자 측에서 레코드를 저장하는 언어에 관계없이 모든 레코드를 가져와 사용자가 변경할 수 있도록 나열하려면 어떻게합니까 (데이터 편집, 데이터 저장 여러 언어)? 현재, 현재 언어에 해당하는 레코드 만 가져올 수 있습니다 (구성 또는 명시 적으로 읽음).
고마워요!
여기에서 같은 문제가 발생합니다. 생성 된 쿼리는 변환 된 각 필드에 대해 변환 테이블을 사용하여 내부 조인을 수행하므로, 적어도 하나가 변환 테이블에 없으면 원래 레코드조차 검색되지 않습니다. 기존 번역 된 필드를 기존 모델에 추가해야하는 경우 완료되었습니다. – eleonzx
나는 동일한 문제를 가지고 그것을 고치기 위해 코드를 작성했다. 기본적으로 새로운 번역 가능 필드를 추가 한 후에는이 코드를 실행하여 기존의 모든 행에 대해 DB에 새 번역 레코드를 추가한다. 참조 : http://stackoverflow.com/questions/13243785/add-a-new-translatable-field-to-an-existing-translatable-table-in-cakephp-2-2/13249219#13249219 –