我是学习CakePHP的新手。我做了博客教程,现在我正在尝试为帖子添加类别。我创建了Category和SubCategory模型以及MySQL DB Tables,我将模型与如下相关:
发布 - > “belongsTo” - >子类别 - > “belongsTo” - >分类
发布 - >子类别工作正常,我可以通过以下方式解析视图中的子类别名称:
php echo $post['SubCategory']['name'];
现在:如何在关系中更进一步,并在后视图中获取帖子的类别名称(通过SubCategory)?以下显然给了我类别ID,但不是它的名字:
php echo $post['SubCategory']['category_id'];
非常感谢!
答案 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'];