0

hasmany アソシエーションを介してモデルに参加し、レコードの数を数えようとしています。基本的に、ユーザーとプロジェクトがあります。関連するプロジェクトの数をユーザー インデックス アクションに表示したいと考えています。

var $hasMany = array('Project' => 
                                array('className'     => 'Project', 
                                      'conditions'    => '',
                                      'order'         => '', 
                                      'limit'         => '',                    
                                      'foreignKey'    => 'user_id',              
                                      'dependent'     => true,                   
                                      'exclusive'     => false,                  
                                      'finderQuery'   => '',                      
                                      'fields'        => '',                      
                                      'offset'        => '',                      
                                      'counterQuery'  => '',
                                      'counterCache'  => true
                                      )           
                    );

そのため、user_id で Project モデルに参加し、counterCache を true に設定しました。問題は、ユーザー インデックス ビューでこれにアクセスするにはどうすればよいかということです。

私はもう試した

<?php echo $user['Project']['project_count']; ?>

<?php echo $user['User']['project_count']; ?>

誰かが私を助けることができますか?

ジョンジー

4

2 に答える 2

1

上記をすべて行っても project_count がまだ更新されない場合は、app/config/core.php でキャッシュをオフにしてみてください。

データベーススキーマを更新したときにその問題に遭遇しましたが、Cake は古いスキーマをキャッシュしていたため、カウンターフィールドが見つかりませんでした。

于 2010-10-15T03:55:59.740 に答える
1

counterCache協会に所属する必要がありますbelongsTo。あなたの例では、プロジェクトモデルの関連付けでtrueにアクティブ化する必要がある間project_count、テーブルに含める必要があります。マニュアルを確認するusersbelongsTocounterCache

于 2010-09-05T19:00:31.987 に答える