使用CakePHP实现标签云

时间:2012-03-26 21:00:21

标签: cakephp tag-cloud

我对标签云做了一些研究,最后我选择了类似于本页中所见的Wordpress的架构:http://www.pui.ch/phred/archives/2005/04/tags-database-schemas.html

目前,我创建的表格是:PostsPostsTagMapsPostsTags

1)即使我不打算使用控制器,我还需要为PostsTagMaps创建一个表吗?

2)Post有多个PostTagMaps。我不确定我应该在哪里定义这种关系。我认为它应该是Post模型,但是我必须将PostsTags表加入PostTagsMaps然后将其加入Posts,所以我想要求一些建议。

1 个答案:

答案 0 :(得分:1)

简单的解决方案是遵循Cake约定(它与您链接的解决方案非常相似)。你将有三个表:

poststagsposts_tags

然后是您的Post模型HABTM Tag模型。 Cake会自动使用连接表来保存和检索信息。有关设置架构的详细信息,请查看the book

Cake足够灵活,你可以随意使用它,但如果它是一种基本的post-tags关系,那么常规方法就是你的选择。

如果要使用PostsTagMaps之类的自定义模型/表格,请使用HABTM关系定义中的“with”键执行此操作。 'with'键告诉Cake使用特定模型(因此使用特定表)而不是自动生成的版本。在这种情况下,您的代码模型听起来像是PostsTags而您的HABTM表格是PostsTagMaps,因此Post HABTM PostsTag上的'with'键将是{{1} }。