我有一個通過CakePHP請求中的模型編譯的嵌套數組。該數組可以嵌套在可變深度,並且內容將被返回給用戶。如何在CakePHP視圖中呈現嵌套數組?
當前,此數組的循環和呈現過程是使用請求的View元素中的函數完成的。這個函數首先在基本數組的深度處被調用,並且對於具有更多數組子元素的任何數組元素重複該函數。例如。
function print_depth($elements) {
foreach($elements as $element) {
echo $element['title'];
if($element['children']) {
print_depth($element['children']);
}
}
}
print_depth($elements);
通過該處理,我可以打印出陣列的所有等級,同時仍然保持視圖(因此,它是可更換皮膚)內的標記的靈活性,但我想象這是該函數的不正確的位置即處理這個。
這個操作還有更多的MVC有效過程嗎?
謝謝,但不會這是無效的,只是因爲該功能會調用視圖文件中的函數內現有的?我知道PHP會允許這一點,但認爲它是皺眉。 – Rhys
通常我不會將它稱爲無效的,它只是有點「髒」,因爲它可能在多視圖中很容易違反DRY原則,並且因爲它將成爲全球可訪問的函數,有些人可能會認爲它是違反MVC原則,因爲它可以在視圖之外提供「內部」視圖功能,但在視圖之外也可以使用助手,所以我會說這是一種分裂的頭髮。無論如何,對於一個乾淨的方法,你應該使用一個幫手,這是推薦的方法。 – ndm