Cakephpマニュアルの例、http: //book.cakephp.org/view/1323/Containable#Containing-deeper-associations-1325のように、アソシエーションモデルの条件を介してモデルからデータをフェッチする必要があります。
私は持っています:
モデル言語:
class Language extends AppModel {
var $name = 'Language';
var $actsAs = array('Containable');
var $hasMany = array(
'LanguageTranslation' => array(
'className' => 'LanguageTranslation',
'foreignKey' => 'language_id'
)
);
}
そして協会、ModelTranslation
class LanguageTranslation extends AppModel {
var $name = 'LanguageTranslation';
var $belongsTo = array(
'Language'
);
}
私がする時:
$language_array = $this->controller->Language->find('all', array(
'contain' => "LanguageTranslation.id = 1"
));
1つだけでなく、すべての言語を受け取ります(LanguageTranslationのidは一意であるため)。結果は1つである必要があります!
だから、
debug($language_array);
結果は次のとおりです。
Array
(
[0] => Array
(
[Language] => Array
(
[id] => 1
[code] => it
[locale] => ita
)
[LanguageTranslation] => Array
(
[0] => Array
(
[id] => 1
[language_id] => 1
[language] => italiano
)
)
)
[1] => Array
(
[Language] => Array
(
[id] => 2
[code] => en
[locale] => eng
)
[LanguageTranslation] => Array
(
)
)
[2] => Array
(
[Language] => Array
(
[id] => 3
[code] => de
[locale] => ger
)
[LanguageTranslation] => Array
(
)
)
)
id = 1の言語だけをキャッチしないのはなぜですか?