如何在CakePHP中执行此查询?

时间:2014-02-12 03:14:51

标签: php mysql sql cakephp

我有Rooms表和Residents表。每个Room都有不同数量的Residents,所以我的表格是这样的:

房间

+-------------------+
| room_id | room_no |
+-------------------+
|   0001  |    5    |
|   0002  |    6    |
+-------------------+

居民

+-------------------------------+
| user_id | user_name | room_id |
+-------------------------------+
|  0123   |   John    |  0001   |
|  0110   |   Gwen    |  0002   |
|  0020   |   Kim     |  0002   |
+-------------------------------+

那么如何在Controller中执行查询,然后将其显示在view中,以便像这样输出?

Room 1 - Residents
+----------+
| 1 | John |
+----------+

Room 2 - Residents
+----------+
| 1 | Gwen |
| 2 | Kim  |
+----------+

提前致谢。

注意:我已经建立了正确的关联,我的问题是如何将它显示到视图中,就像我预期的那样。

3 个答案:

答案 0 :(得分:1)

您需要先在Room Model中创建一个关联

var $hasMany=array('Resident'); 

之后在控制器中你可以这样做

$residents=$this->Room->find('all');

答案 1 :(得分:0)

将您的房间模型设置为HasMany居民,然后在房间控制器的paginate call索引操作中,您需要将递归设置为1.

在您的房间索引视图中,您需要循环通过$ room ['Resident']来显示居民。

答案 2 :(得分:0)

了解更多信息: http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html#hasmany 。我以这种方式调试我的.ctp。

<?php echo debug($rooms) ?>

您可以在解析之前看到关联。或者使用github上提供的所谓调试工具