CakePHP - 没有dB表的帖子类型

时间:2011-06-07 13:39:36

标签: cakephp

在cakephp中执行此操作的最佳方式是什么:

我的帖子模型+视图+控制器在我的数据库中有一个“帖子类型”字段 - 链接到我的帖子类型ID。

帖子类型ID是: - 预习 - 审查 - 新闻

我要问的是:检索帖子类型名称的最佳方式(原生方式)是什么,而不创建表Post_types并将其与post_id链接。

我尝试在配置列表中创建一个数组,但是我认为它可以比这更好。

3 个答案:

答案 0 :(得分:2)

您可以使用afterFind模型的Post方法,并在结果中添加post_type字段。另请参阅cookbook

答案 1 :(得分:1)

根据我的理解,您的post_type是一个值为preview, review, news的枚举字段,或者您知道只添加这三种类型的varchar,对吗?

您可以尝试以下查询

SELECT DISTINCT(post_type) FROM posts;

这将返回post_types表格中使用的所有posts

在Cake中,您可以使用findquery方法执行此操作。

# Using find
$this->Post->find('all', array(
  'fields' => array('DISTINCT(post_type)')
);

# Or using the query directly (maybe easier in this case)
$this->Post->query("SELECT DISTINCT(post_type) FROM posts;");

答案 2 :(得分:-1)

将您的表格帖子与带有$ hasOne的表格post_types相关联。 用例如     $这个 - >&后GT;找到( '所有'); 你会在一个数组中得到帖子和post_type。