如何在CakePHP视图中呈现嵌套数组?

时间:2012-10-16 05:36:39

标签: php cakephp loops multidimensional-array

我有一个嵌套数组,它是通过CakePHP请求中的模型编译的。数组可以嵌套在可变深度,内容将返回给用户。

目前,使用请求的View元素中的函数完成此数组的循环和呈现过程。首先在基本数组的深度调用此函数,并对具有其他数组子元素的任何数组元素重复此函数。例如

function print_depth($elements) {
  foreach($elements as $element) {
    echo $element['title'];

    if($element['children']) {
      print_depth($element['children']);
    }
  }
}

print_depth($elements);

通过这个过程,我可以打印出阵列的所有级别,同时仍然保持视图中的标记灵活性(因此,它是可换肤的),但我想这是处理它的函数的错误位置。 / p>

此操作是否有更多MVC有效的流程?

2 个答案:

答案 0 :(得分:2)

从MVC的角度来看,它可能属于它所属的位置,因为视图的责任是为视觉表示准备数据。但是,对于更干的方法,您可以在帮助程序中实现此功能。

答案 1 :(得分:1)

创建一个帮助程序,而不是在视图代码中放置一个函数。

你做的事情听起来像渲染一棵树,那里已经有一个树帮手。

https://github.com/CakeDC/utils/blob/master/View/Helper/TreeHelper.php