如何根据cakephp中不同表的结果从数据库表中获取结果?

如何根据cakephp中不同表的结果从数据库表中获取结果?,php,mysql,database,cakephp,cakephp-1.3,Php,Mysql,Database,Cakephp,Cakephp 1.3,例如,我的数据库中有以下表格: 人 组 在人员表中,我有以下列: 名称 生日 组 在“组”表中,我有以下列: 名称 颜色 现在我想从我的数据库中获取结果,列出所有人的列表。 所以我会用这个: $this->set('people', $this->Person->find("all")); 显然,在我看来,我会遍历返回的数组并显示它。现在,我还想了解列表中的每个人从groups表中检索到的颜色和组名 我如何在CakePHP中实现这一点。您必须设置递归属性。但我想它应该使用默认

例如,我的数据库中有以下表格:

人 组 在人员表中,我有以下列:

名称 生日 组 在“组”表中,我有以下列:

名称 颜色 现在我想从我的数据库中获取结果,列出所有人的列表。 所以我会用这个:

$this->set('people', $this->Person->find("all"));
显然,在我看来,我会遍历返回的数组并显示它。现在,我还想了解列表中的每个人从groups表中检索到的颜色和组名

我如何在CakePHP中实现这一点。

您必须设置递归属性。但我想它应该使用默认值。将这一行放入控制器调试$this->Person->findall中,检查数据是否尚未包含所需的组信息

如果没有,请尝试设置$this->Person->recursive=1;在调用find函数之前

有关递归的详细信息:

您必须设置递归属性。但我想它应该使用默认值。将这一行放入控制器调试$this->Person->findall中,检查数据是否尚未包含所需的组信息

如果没有,请尝试设置$this->Person->recursive=1;在调用find函数之前


有关递归的详细信息:

首先确保定义了模型关系。第二,你可能想考虑为你的相关表使用ID字段,我假设你这样做了,也许只是在原来的问题表定义中没有包含它们。 是的,运行$this->Person->findall,正如Elwhis指出的那样,查看您的数组正在转储什么


如果这是一个任务关键型应用程序,请确保使用而不是递归,以防止对数据库的查询负担过重。

首先确保定义了模型关系。第二,你可能想考虑为你的相关表使用ID字段,我假设你这样做了,也许只是在原来的问题表定义中没有包含它们。 是的,运行$this->Person->findall,正如Elwhis指出的那样,查看您的数组正在转储什么


如果这是一个任务关键型应用程序,请确保使用而不是递归,以防止对数据库的查询负担过重。

btw,您是否遵循蛋糕命名约定?我通常尝试这样做。我不知道我必须命名组列group_id.btw,你遵循蛋糕命名约定吗?我通常会尝试。我不知道我必须命名组列group_id。好的,谢谢你的帮助。我想出来了。我必须让这个团体有很多人。另外,为了遵循惯例,我在People to group_id中命名了列组。好的,谢谢你的帮助。我想出来了。我必须让这个团体有很多人。此外,为了遵循惯例,我还将People to group_id中的列组命名为group。