CakePHP 2.2
ツリー動作を使用して、カテゴリのネストされた垂直メニューを作成しました。これらのカテゴリには製品があります。私が達成したいのは、指定されたカテゴリの製品数を含むカテゴリ名の横にあります。次に例を示します。
Automobile (100) > SUV (35)
> Pickup (25)
> Berline (40)
カテゴリの横に、そのカテゴリ内の製品数が表示されます。
私はオンラインでチェックして、このチュートリアルを見つけました: http://mrphp.com.au/blog/fun-tree-behaviour-cakephp 「データの検索」の最後の部分に、それを達成する方法を示す行があります:
// count the posts in the given category and all subchildren recursively
$id = 123;
$postCount = $this->Category->postCount($id);
debug($postCount);
このコードの問題は、postCount() を使用していることですが、私の場合、私のカテゴリには投稿はありませんが製品があります。つまり、製品モデルと ProductsController を使用しているため、機能しません。私はそれを達成できますか?
[編集]
解決策を見つけました。最初に、カテゴリ テーブルに新しいフィールドを作成し、product_count (関連付けられたテーブルの単数名) という名前を付けました。次に、ProductsController.php に属しを追加しました。次のように:
public $belongsTo = array(
'Category' => array(
'counterCache' => true
)
);
最後に、垂直メニューの foreach で、カテゴリ名の横にこれを追加しました:
$v['Category']['product_count']
今、それは働いています!