Cakephp 在自定义类中使用cake htmlhelper

Cakephp 在自定义类中使用cake htmlhelper,cakephp,Cakephp,我有一个自定义类,存储在/app/Lib中,我想使用htmlhelper,但由于该类没有扩展任何内容,$this->Html->link中对$this的引用给出了错误:调用非对象上的成员函数link() 我如何在自己的类中使用这个助手 即: <?php class Tree { private $level = 0; public function show_tree($tree_array) { $this->level++; $style = ($th

我有一个自定义类,存储在/app/Lib中,我想使用htmlhelper,但由于该类没有扩展任何内容,
$this->Html->link
中对$this的引用给出了错误:调用非对象上的成员函数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--;
   }


 }

echo$this->Html->link(uuuu('View')、数组('action'=>'View',$t['Category']['id']);
echo$this->Html->link(uuu('Edit')、array('action'=>'Edit'、$t['Category']['id']);
echo$this->Form->postLink('Delete')、array('action'=>'Delete'、$t['Category']['id'])、null、\uu('是否确实要删除#%s?'、$t['Category']['id']);
回音“\n”;
回音“\n”;
如果(!empty($t['children'])$this->show_tree($t['children']);
回声“\n”;
}
回音“\n”;
$this->level--;
}
}

通过查看代码,您显然需要一个助手,而不是库

扩展html帮助程序或在自定义帮助程序(例如名为NestedListHelper)中使用它。在MVC环境中,这是正确的方法,也是最不需要编写的代码


看看这个TreeHelper,它还将基于树结构生成嵌套列表,这可能与您尝试执行的操作类似:

如果出现错误,您没有正确实例化帮助程序。显示代码。此外,如果您认为必须在该库中使用助手,那么您的方法似乎是错误的。为什么需要在库中使用助手?您不应该使用Router::url来创建url吗?或者创建一个自定义的帮助程序并以这种方式使用Html帮助程序?我的类只是一个输出嵌套列表的简单递归函数。我只是想给输出添加一些CRUD链接。我将添加上面的代码,如果它有帮助的话。jep,那么它仍然应该是一个助手。范围显然是视图级别。谢谢,制作了一个扩展AppHelper的新帮助程序,并添加了我想要使用的核心帮助程序数组。新的MVC和蛋糕。。。