1

几个小时以来我一直坚持的快速问题:

对于我的 cakePHP 网站项目(使用 2.0 版),我有 2 个模型。它们有点晦涩,所以我会将模型转换为标准的博客文章模型。

所以我有一个“帖子”模型和那些许多“类别”。

class Post
$belongsTo = 'Category'

class Category
$hasMany = 'Post'

到现在为止还挺好。现在我希望每个类别都有一个(强制性)“主要职位”。

我怎么把它联系起来?

  • 另一个'MainPost'模型?这似乎是多余的,因为它的内容与帖子相同。
  • 帖子中的布尔“is_main”列?似乎不对,因为每个类别中只允许一个帖子作为“主要”帖子。
  • 类别中的“mainpost_id”列?听起来不错,但“$belongsTo”是唯一允许外键在当前类中的关联。并且在相反的情况下说类别属于帖子对我来说似乎是错误的。还 belongsTo 是一个多对一的关联,我想要的是一种一对一的关联。

请帮助我,[插入姓名]。你是我唯一的希望。;)

编辑:我想如果有一种方法可以建立“hasOne”关系,但外键与 $hasOne X 在同一个类中,而不是在另一个类中,那就太好了。

4

2 回答 2

1

这是一种解决方案:

[ categories ]
id
name
mainpost_id

[ posts ]
id
category_id
title
text
  • 类别hasMany Post
  • 帖子属于类别
  • 分类有一个 MainPost见代码
于 2011-12-16T21:39:46.823 回答
0

我认为您使用 hasAndBelongsToMany 关系....在此链接上查看更多详细信息http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html

于 2011-12-15T19:40:15.003 回答