现在我已经尝试解决这个问题几个小时了,我一直在尝试谷歌和文档并反复阅读,但我似乎无法理解它。
让我试着解释一下我在做什么,但是简化项目,假设我正在用 cakePHP 制作一个博客。我得到了这3个表格,以简化我们只使用所需的字段。
Table: posts
Desc: This table store all our posts
Fields:
postid - Identifier for the post
title - The posts title
Table: sections
Desc: this table contains categories
Fields:
sectionid - Identifier
sectionname - Name
Table: postlinks
Desc: this table store relations between posts and categories.
Fields:
postid – Post ID to determine what post is linked to what section
sectionid – Section ID to determine the section this post belong to
现在让我通过展示常规php和SQL代码的示例来尝试解释我想用cakePHP实现的目标:
(请注意,此代码是随时随地编写的,可能无法正常工作,但它可以让您了解我正在尝试做的事情)
<?php
/**
*Block of code to fetch all posts
*/
while ( $rows = mysql_fetch_array($query) )
{
$postid = $rows['postid'];
/** Join postlinks and sections **/
$sql = “SELECT sections.*, postlinks.* FROM postlinks
INNER JOIN sections
ON postlinks.sectionid = sections.sectionid
WHERE postlinks.postid = '$postid'”;
$query = mysql_query($sql);
print “-- TITLE --”;
print “-- CONTENT --”;
print “Posted in “;
/** Loop all categories **/
while ( $rows = mysql_fetch_array($query) )
{
print $rows['sectionname'] . “ “;
}
}
?>
现在我将尝试用言语解释我想要实现的目标:
当访问者浏览网页并进入网站的博客部分时,我希望列出X个最新帖子,这个帖子可以放在多个类别中,我们将所有类别链接存储在一个单独的表,这里是我填充的地方,我可以设法获取链接,但我似乎无法加入表并循环出名称。
希望有人能够解决我遇到的这个问题,或者指出我正确的方向和/或向我展示一个示例代码。
如前所述,我一直在阅读文档,我试图寻找答案,但
答案 0 :(得分:0)
关联是作为cakephp中的连接实现的。 请遵循HABTM的概念,即“有并且属于许多人” 在你的模特协会做宣言。
在你的cakephp查询中声明关联。
递归 - &gt; -1或0或1或2
要了解有关关联的更多信息,请访问此链接enter link description here