我正在尋找更好的解決方案使用Translate Behavior/i18n的相關模型(hasOne,hasMany或HABTM)。 CakePHP 1.x和2.x不支持這個。CakePHP翻譯行爲與相關模型
我的解決方案是非常難看,但工作:
if(Configure::read('Config.language') !== DEFAULT_LANGUAGE) {
$this->{$this->modelClass}->locale = array(Configure::read('Config.language'), DEFAULT_LANGUAGE);
if(is_array($this->{$this->modelClass}->belongsTo)) {
foreach($this->{$this->modelClass}->belongsTo as $relation => $model) {
$this->{$this->modelClass}->$model['className']->locale = array(Configure::read('Config.language'), DEFAULT_LANGUAGE);
}
} elseif(is_array($this->{$this->modelClass}->hasOne)) {
foreach($this->{$this->modelClass}->hasOne as $relation => $model) {
$this->{$this->modelClass}->$model['className']->locale = array(Configure::read('Config.language'), DEFAULT_LANGUAGE);
}
} elseif(is_array($this->{$this->modelClass}->hasMany)) {
foreach($this->{$this->modelClass}->hasMany as $relation => $model) {
$this->{$this->modelClass}->$model['className']->locale = array(Configure::read('Config.language'), DEFAULT_LANGUAGE);
}
}
} else {
$this->{$this->modelClass}->locale = DEFAULT_LANGUAGE;
}
也許你有更好的解決方案,你能告訴我:)
它看起來好多了,我會測試。 – kicaj
此代碼正在爲每個記錄執行SQL查詢,並不好。 –