В cakephp — могу ли я кэшировать связанные модели? например: Пользователь -> Профиль

#php #cakephp #counter-cache

#php #cakephp #кэш-счетчик

Вопрос:

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

Profile Принадлежит Country

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

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

Возможно?

Комментарии:

1. Да, я пробовал это многими разными способами.

Ответ №1:

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

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

Ответ №2:

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

Ваша модель профиля должна выглядеть следующим образом:

 function Profile extends AppModel {
    $name = 'Profile';
    var $belongsTo = array(
        'Country' => array(
            'counterCache' => 'member_count'
        )
    );
}