CakePHP - MVC模型关联 - 如何构建此数据模型?

时间:2011-12-15 19:30:43

标签: php cakephp cakephp-2.0 cakephp-appmodel model-associations

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

对于我的cakePHP网站项目(使用版本2.0)我有2个模型。它们有点模糊,所以我会将模型翻译成标准的博客文章。

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

class Post
$belongsTo = 'Category'

class Category
$hasMany = 'Post'

到目前为止一切顺利。现在我希望每个类别都有一个(强制性的)“主帖”。

我如何联想呢?

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

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

编辑:我想如果有一种方法可以有一个“hasOne”关系,但是在$ hasOne X的同一个类中有外键,而在另一个类中没有标准的话。

2 个答案:

答案 0 :(得分:1)

这是一个解决方案:

[ categories ]
id
name
mainpost_id

[ posts ]
id
category_id
title
text
  • 类别 hasMany 发布
  • 发布 belongsTo 类别
  • 类别 hasOne MainPost(see code

答案 1 :(得分:0)

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