我有四张桌子:
gallery_categories表: id(int); title(varchar);
gallery_pictures表: id(int); title(varchar);
gallery_categories_gallery_pictures表联合上表: gallery_category_id(int); gallery_picture_id(int);
和i18n表: id(int) locale(varchar) model(varchar) foreign_key(int) 字段(varchar) 内容(文字)
我试过了:
$this->GalleryCategory->bindModel(array(
'hasOne' => array(
'GalleryCategoriesGalleryPicture',
'GalleryPicture' => array(
'className' => 'GalleryPicture',
'foreignKey' => false,
'conditions' => array('GalleryPicture.id = GalleryCategoriesGalleryPicture.gallery_picture_id')
))));
$galleryCategories = $this->GalleryCategory->find('all', array(
'fields' => array('GalleryCategory.*','GalleryPicture.*')
));
但是它一直返回正确的Category表字段和错误的Pictures表字段...... “类别”字段包含正确的翻译单词。 Pictrures字段包含错误的翻译单词。
模特:
class GalleryCategory extends AppModel
{
public $tablePrefix = 'ef_';
var $name = 'GalleryCategory';
public $actsAs = array('Translate' => array(
'title' => 'titleTranslation'
)
);
}
class GalleryPicture extends AppModel
{
public $tablePrefix = 'ef_';
var $name = 'GalleryPicture';
public $actsAs = array('Translate' => array(
'title' => 'titleTranslation'
)
);
}
我怎样才能从两个表中得到正确的翻译单词?
ps:使用“i18n数据库表”的翻译仅适用于一个表(exp:仅限GalleryCategory或仅限GalleryPicture)。
答案 0 :(得分:1)
翻译不适用于相关模型,请参阅last couple of lines here:
请注意,只会翻译您直接执行
find
的模型字段。通过关联附加的模型将不会被翻译,因为目前不支持在关联模型上触发回调。
<强>更新强> 这可能很棘手,因为你有一个HABTM关系 - 以前我通过在模型的afterFind回调中添加第二个数据检索来解决这个问题,但这是一个更简单的关联。希望这会有所帮助。