0

我有一个自定义类,我存储在 /app/Lib 中,我想使用 htmlhelper 但由于该类没有扩展任何内容,因此对 $this 的引用$this->Html->link给出了错误:调用成员函数链接()非对象

我如何在自己的班级中使用这个助手?

这是:

<?php
class Tree {

  private $level = 0;

  public function show_tree($tree_array) {
    $this->level++;
    $style = ($this->level==1) ? ' class="sortable"':'';
    echo "<ol".$style.">\n";
    foreach ($tree_array as $t) {
        echo "<li id=\"list_".$t['Category']['id']."\">\n";         
        echo "<div>".$t['Category']['name'];?>
        echo $this->Html->link(__('View'), array('action' => 'view', $t['Category']['id']));
        echo $this->Html->link(__('Edit'), array('action' => 'edit', $t['Category']['id']));
        echo $this->Form->postLink(__('Delete'), array('action' => 'delete', $t['Category']['id']), null, __('Are you sure you want to delete # %s?', $t['Category']['id']));
        echo "</span>\n";
        echo "</div>\n";
        if (!empty($t['children'])) $this->show_tree($t['children']);
        echo "</li>\n";
    }
    echo "</ol>\n";
    $this->level--;
   }


 }
4

1 回答 1

1

通过查看您的代码,您显然需要一个帮助程序,而不是一个库。

扩展 html 帮助程序或在您的自定义帮助程序中使用它,例如名为 NestedListHelper。这是 MVC 上下文中的正确方法,也是编写代码最少的方法。

看看这个 TreeHelper,它还会根据树结构生成嵌套列表,它可能类似于您尝试做的事情:https ://github.com/CakeDC/utils/blob/master/View/Helper/TreeHelper .php

于 2012-11-14T11:10:43.030 回答