一表二模型

时间:2010-12-01 21:39:53

标签: orm cakephp model controller

我有帖子表
ID
类型枚举(A,Q)
标题
内容

我需要控制器questions_controller和answer_controller来使用
请以正确的方式前往

1-
制作2个模型(问答)并使用'帖子'作为模型表

2-
在questions_controller和answer_controller中使用post模型

1 个答案:

答案 0 :(得分:0)

对我来说,它应该是一个表有一个模型

这样更好用 $ uses = array('Post');在您的控制器中。

<强>更新 据我所知,您希望根据类型列过滤数据。实际上你的db模型是错误的,因为除非它们完全不相关,否则你的答案需要属于这个问题。这意味着您需要一个额外的列parent_id,它将确定父节点(问题)和子节点(答案)是什么。

如果我们有这个假设,那么您可以在模型中设置关系,如:

class Post extends AppModel {
   ...
   var $belongsTo = array(
      'Parent' => array('className' => 'Post','foreignKey' => 'parent_id', 'conditions' => 'Parent.parent_id IS NOT NULL')
   );
   ...
}

所以你自动拥有Post和Post-&gt; Parent。但我认为最好有2个表 - 一个表示问题,另一个表示答案。