1

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

目前,该数组的循环和渲染过程是使用请求的 View 元素中的函数完成的。此函数首先在基本数组的深度调用,然后对任何具有更多数组子元素的数组元素重复。例如。

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

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

print_depth($elements);

通过这个过程,我可以打印出数组的所有级别,同时仍然保持视图内的标记灵活性(因此,它是可换肤的),但我认为这是处理此问题的函数的错误位置。

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

4

2 回答 2

2

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

于 2012-10-16T06:46:13.750 回答
1

创建一个助手而不是在视图代码中放置一个函数。

你所做的听起来像是渲染一棵树,那里已经有一个树助手。

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

于 2012-10-16T06:47:58.053 回答