0

我是学习 CakePHP 的新手。我完成了博客教程,现在正在尝试为帖子添加类别。我创建了类别和子类别模型以及 MySQL 数据库表,并将模型关联如下:

帖子 -> “belongsTo” -> 子类别 -> “belongsTo” -> 类别

Post -> Subcategory 工作正常,我可以通过以下方式解析视图中的 SubCategory 名称:

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

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

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

非常感谢!

4

2 回答 2

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'];
于 2012-06-14T14:16:47.350 回答
0

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

于 2012-06-14T13:37:32.837 回答