0
我有类似博客系统的东西。每个条目都可以有评论。每条评论都是由用户创建的。在CakePHP中使用读取函数检索递归数据
我目前在控制器的'view'操作上使用read函数来检索所有的数据。
模型之间的关系已创建(belongsTo关系,的hasMany ...等)
当输入视图被调用时,我得到的是这样的:
['Entry'] => Array
(
[id] => 1
[body] => 'xxxxxx'
[...] => ...
)
[Comment] => Array
(
[0] => Array
(
[id] => 1
[user_id] => 1
[body] => This is an example of a comment guys!
[created] => 0000-00-00 00:00:00
)
[1] => Array
(
[id] => 2
[user_id] => 1
[body] => This is the 2nd comment!!!
[created] => 0000-00-00 00:00:00
)
)
有什么办法,用读函数,以检索评论的“递归”数据,例如与user_id相关的用户数据? (为了得到他们的名字等)
我希望这样的事情:
['Entry'] => Array
(
[id] => 1
[body] => xxxxxx
[...] => ...
)
[Comment] => Array
(
[0] => Array
(
[Comment] => Array
(
[id] => 1
[user_id] => 1
[body] => This is an example of a comment guys!
[created] => 0000-00-00 00:00:00
)
[User] => Array
(
[id] => 1
[username] => myusername
[created] => 0000-00-00 00:00:00
)
)
[1] => Array
(
[Comment] => Array
(
[id] => 1
[user_id] => 2
[body] => fasdfasfaT
[created] => 0000-00-00 00:00:00
)
[User] => Array
(
[id] => 2
[username] => myusername2
[created] => 0000-00-00 00:00:00
)
)
)
感谢。
CakePHP 2.2没有这样的参数“包含”find方法:http://book.cakephp.org/2.0/en/models/retrieving-your-data.html#find – Alvaro
您需要启用[Containable ](http://book.cakephp.org/2.0/en/core-libraries/behaviors/containable.html)行为 – ori
@Steve是的。 @ori指出了最好的方法 - Containable是什么“包含”结果集给您定义的模型/表格集。它在技术上重新定义了模型绑定。这与使用'$ this-> Model-> bindModel()'或'$ this-> Model-> unbindModel()'相同 - 它实际上使用了这些。否则,是将'$ this-> Model->递归'设置为高于1(唯一的其他选项是2)的值较慢。 –