2012-02-27 27 views
3

私は何が欠けているのか非常に興味があります。例だけが説明に役立ちますが、文章の最初の質問は次のとおりです:InventoryとInventoryCategory - どちらも画像の関連付けがあります。 1つのInventoryCategoryと関連する在庫を見ると、両方の画像の関連付けが必要です。現在、私はInventoryCategory-> Imageのみを返しています。在庫アイテムの画像は返されません。これは私がモデルに持っているものです。CakePHP - 拡張モデルの関連付け

Inventory: 
public $belongsTo = 
    array(
    'User' 
    , 'InventoryCategory' 
    , 
); 

public $hasMany = 
    array(
    'Image' => array 
    (
     'className' => 'Media.MediaImage' 
    , 'foreignKey' => 'foreign_key' 
    , 'conditions' => array(
      'Image.model' => 'Inventory' 
     , 'Image.group' => 'Image' 
     , 
     ) 
    , 'dependent' => true 
    , 'order' => 'Image.rank ASC, Image.id ASC' 
    ) 
    , 
); 

public function containedModels() 
{ 
    $contain = array(
     'Image' 
    , 'User' 
    , 'InventoryCategory' 
    , 
); 
    return $contain; 
} 
InventoryCategory 
public $hasOne = 
    array(
    'Image' => array 
    (
     'className' => 'Media.MediaImage' 
    , 'foreignKey' => 'foreign_key' 
    , 'conditions' => array(
      'Image.model' => 'InventoryCategory' 
     , 'Image.group' => 'Image' 
     , 
     ) 
    , 'dependent' => true 
    , 
    ) 
    , 
); 

public $hasMany = 
    array(
    'Inventory' 
    , 
); 

public function containedModels() 
{ 
    $contain = array(
     'Image' 
    , 'Inventory' 
    , 
); 
    return $contain; 
} 

答えて

2

あなたはCakePHPが1つだけ選択することが起こっているとして、あなたは問題があるとしている、バック()単一のfind内の両方のイメージの関係を引くしようとしている場合それらの同じ名前の関係のうち、何とか解明する必要があり、エラーを投げたり、最初に見つかった関係(あなたが見ているものと思われる)を選択します。

どちらの場合もMedia.MediaImageとの関係を一意にすることをおすすめします。 InventoryImageとInventoryCategoryImageを使用します。

関連する問題