0
的counterCache我有一個視頻共享網站項目的機型如下:問題CakePHP的
class Video extends AppModel {
var $name = 'Video';
var $hasAndBelongsToMany = array(
'Tag' => array(
'className' => 'Tag',
'joinTable' => 'videos_tags',
'foreignKey' => 'video_id',
'associationForeignKey' => 'tag_id',
'unique' => true,
)
);
}
class Tag extends AppModel {
var $name = 'Tag';
var $hasAndBelongsToMany = array(
'Video' => array(
'className' => 'Video',
'joinTable' => 'videos_tags',
'foreignKey' => 'tag_id',
'associationForeignKey' => 'video_id',
'unique' => true,
)
);
}
class VideosTag extends AppModel {
var $name = 'VideosTag';
var $belongsTo = array(
'Video' => array(
'className' => 'Video',
'foreignKey' => 'video_id',
),
'Tag' => array(
'className' => 'Tag',
'foreignKey' => 'tag_id',
'conditions' => '',
'counterCache' => 'videos_tag_counter'
)
);
}
的counterCache的標籤不工作。我不知道爲什麼,當我試圖添加一個beforeSave()回調到videosTag模型時,我發現它不會在視頻被保存時執行(並且此視頻有標籤,並且我在數據庫中找到它們,所以關係videosTags已保存?)!!!任何人都可以解釋爲什麼會發生這種情況
你是如何保存數據?只有在使用'VideosTag'模型保存記錄時,''VideosTag'模型'beforeSave'纔會被觸發,但可能不會通過'$ this-> Tag-> saveAll'來觸發。 – deceze 2009-09-18 03:37:57
我不知道它是如何保存的,因爲cakePHP生成的每一件事,因爲視頻模型與標籤的HABTM關係的videosTags得到保存。 – Ayoub 2009-09-18 10:18:46