使用关系在CakePHP中显示数组的第四级

使用关系在CakePHP中显示数组的第四级,cakephp,cakephp-1.3,Cakephp,Cakephp 1.3,我有表格项目、屏幕截图、sub_屏幕截图和用户界面 我想实现这种图。这就像进入第四关 尊敬,为了给您一些想法,我建议您使用afterFind回调 在查找之后,将用户设置到您希望使用用户模型进行另一次查找的任何位置 我不知道是否存在任何配置来修改$recursive而不修改核心 编辑 当您可以检查是否有$recursive=4并复制关系的核心功能并生成它们时,您可以在AppModel中创建一个通用的afterFind。使用可包含的行为。最近我也有一些关于它的问题。将recursive设置为4会更有

我有表格项目、屏幕截图、sub_屏幕截图和用户界面 我想实现这种图。这就像进入第四关


尊敬,

为了给您一些想法,我建议您使用afterFind回调

在查找之后,将用户设置到您希望使用用户模型进行另一次查找的任何位置

我不知道是否存在任何配置来修改$recursive而不修改核心

编辑


当您可以检查是否有$recursive=4并复制关系的核心功能并生成它们时,您可以在AppModel中创建一个通用的afterFind。

使用可包含的行为。最近我也有一些关于它的问题。将recursive设置为4会更有效,因为您只需要包含所需的模型

按照以下说明在模型上设置行为

然后,您应该能够执行查找并获得所需的结构

$this->Project->find(
    'all',
    array(
        'conditions' => array(
            //put your conditions in here
        ),
        'contain' => array(
             'User',
             'Screenshot',
             'Screenshot.SubScreenshot'
             'Scrrenshot.SubScreenshot.User'
    )
);

有几种方法可以使用模型语法。您可以将数组添加到包含的模型中,以添加条件和/或进一步的深度。

我已经尝试了containable,但它只在第三个深度显示{SubScreenshot}。我想用{Screenshot array}来显示它,所以它应该是{arrayProject=>array Screenshot=>array SubScreenshot,User}而不是{arrayProject=>array Screenshot,SubScreenshot,User}这一切都取决于模型的关联方式。如果屏幕截图有许多子屏幕,那么可包含的行为将实现这一点。我将编辑帖子以获得subscreenshot的用户。我已经得到了!我包括var$actsAs=array'Containable';在项目模型中,并在屏幕截图模型中包含子屏幕。谢谢编辑我的answe,为用户提供subscreenshot。同样,如果模型如您所说是关联的,那么这应该在您要查找的深度处输出数组。
$this->Project->find(
    'all',
    array(
        'conditions' => array(
            //put your conditions in here
        ),
        'contain' => array(
             'User',
             'Screenshot',
             'Screenshot.SubScreenshot'
             'Scrrenshot.SubScreenshot.User'
    )
);