В CakePHP - могу ли я противопоставить модели, связанные с кэшем? например: Пользователь -> Профиль - PullRequest
0 голосов
/ 07 июня 2011

У меня есть поле member_count в моей таблице countries.

Profile относится к Country

counterCache => 'member_count',
counterScope => array( 'Profile.country => 'US' )

Итак, когда пользователь запускает сохранение на $this->User->Profile->save( $this->data), я хотел бы обновить counterCache в Country.

Возможно?

Ответы [ 2 ]

0 голосов
/ 08 июня 2011

Пожалуйста, посмотрите еще раз в документации , чтобы убедиться, что вы все сделали правильно.

Ваш профиль-модель должна выглядеть так:

function Profile extends AppModel {
    $name = 'Profile';
    var $belongsTo = array(
        'Country' => array(
            'counterCache' => 'member_count'
        )
    );
}
0 голосов
/ 07 июня 2011

Барри, его нет в списке опций для отношений hasMany в документации

Полагаю, вы могли бы кэшировать представление с результатами стран и их количеством профилей, чтобы сэкономить некоторую производительность в качестве альтернативы.

...