CakePHP关系超过一个模型/表

时间:2012-06-14 13:20:07

标签: cakephp relationship

我是学习CakePHP的新手。我做了博客教程,现在我正在尝试为帖子添加类别。我创建了Category和SubCategory模型以及MySQL DB Tables,我将模型与如下相关:

发布 - > “belongsTo” - >子类别 - > “belongsTo” - >分类

发布 - >子类别工作正常,我可以通过以下方式解析视图中的子类别名称:

php echo $post['SubCategory']['name'];

现在:如何在关系中更进一步,并在后视图中获取帖子的类别名称(通过SubCategory)?以下显然给了我类别ID,但不是它的名字:

php echo $post['SubCategory']['category_id'];

非常感谢!

2 个答案:

答案 0 :(得分:0)

查看模型的recursive parameter,然后选择第2步(2个深度级别)。如果您的定义正确,这将允许您使用该类别。请记住,它需要获取大量数据,这会影响网站的整体性能。

答案 1 :(得分:0)

您应该查看ContainableBehavior,这将有助于您只获取您真正需要的结果。我总是建议的第一件事就是改变$recursive = -1并使用Containable。这也将大大提高您的应用程序的性能,因为您将对实际不使用的数据执行较少的调用。

使用您的示例:

$results = $this->Post->find('all', array(
  'contain' => array(
    'SubCategory' => array(
      'Category'
    )
  )
));

// in your view foreach loop
echo $post['SubCategory']['Category']['name'];