2012-01-10 11 views
1

は、私は製品のモデルがあり、それぞれの製品には、いくつかの画像を持っています。だから、Product - hasManyからImage。私はいくつかの製品を参照するときCakePHPのモデルassosciation:ビューの製品画像

は今、私はそれが持っている画像を見ることができますが、私は、インデックスの製品を一覧表示する際に、画像を表示することはできませんよ。 製品の最初のイメージをインデックスに表示するにはどうすればよいですか?

私がこれに対処できる唯一の方法は、コントローラProductsの内部にImageモデルを使用することですが、これは最良の選択肢ではないと思います。

EDIT: もののほとんどは、焼成後だけのようです。デフォルトでは、すべての商品を一覧表示するときにhasManyが表示されますか?

モデル:あなたは焼くスクリプトを使用している場合は

class Product extends AppModel { 
var $hasMany = array(
    'Image' => array(
     'className' => 'Image', 
     'foreignKey' => 'parent_id', 
     'dependent'=> false 
    ), 
); } 
+0

あなたが使用しているコードの例をいくつか提供してもらえますか? – Bangline

+0

新鮮に焼いた場合、この機能はすでに存在します。たとえ 'recursive = 0'でもケーキはProductとそれに関連する画像を返すべきです。製品を見るときにイメージを見ることができるので、 'products'のインデックスメソッドを投稿するべきです。 – Ross

答えて

0

、あなたのindexアクションは、最も可能性が高いことで、このラインを持っています:

$this->Product->recursive = 0; 

これは、あなたがしたすべての関係を無効にしますセット。 /コメントこの行を削除し、適切に画像を表示することができるはずです(それはの$ this - の下でなければなりません>データ[「製品」] [「画像」])。

+0

私はこれが問題だと思うし、なぜデフォルトでこの行が存在するのかわかりません。ありがとう! – user1018809

+0

この行は、デフォルトでは存在します。なぜなら、bakeスクリプトは与えられたモデルだけのインデックステーブルを作成していると仮定しているからです。しかし、多くの場合、関連するモデルのデータも表示したいので、この行は削除する必要があります。 – Oldskool

関連する問題