我试图通过 CakePHP 中的关系来了解双向自引用 hasMany(真是满口!)。
我正在做一个图片匹配网站。
- 图片通过“匹配”(连接模型)与其他图片相关联。
- 每场比赛有两张图片并存储当前评分和总票数。
- 查看图片时,从任一方向查看图片的所有相关图片都应该可用(通过其匹配)。
我首先通过与连接模型的关系定义了一个 hasMany。
图片匹配连接表具有以下结构:
id | picture_id | partner_id | rating | total_votes
我的匹配加入模型关联如下所示:
class PictureMatch extends AppModel {
...
public $belongsTo = array(
'Picture' => array(
'className' => 'Picture',
'foreignKey' => 'picture_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
'Partner' => array(
'className' => 'Picture',
'foreignKey' => 'partner_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
}
每张图片都需要能够从任一方向访问其相关图片,但这是我无法掌握的地方。看起来我需要保存关系的双方,但这会破坏连接模型中存储的额外数据 - 有两个数据库条目,投票可能会因方向而异。
任何人都可以阐明在 CakePHP 中执行此操作的最佳方法吗?我比较困惑。
是否可以即时创建反向关系?