0

我有两种相似但不同的数据。他们有一些他们共享的展示代码,但有些他们以不同的方式实现。

我在想我会在一个助手中拥有一个工厂函数(Tracker 是一个 TrackerHelper),就像这样;

$this->Tracker->getInstance("boolean"); // Returns a BooleanTrackerHelper

但我不确定如何从另一个助手中返回另一个助手。我不认为我可以这样做,return new BooleanTrackerHelper()因为 CakePHP 可能有它自己想要通过的例程,此外;这将迫使我将所有类放在同一个文件中。

手册中有一个功能允许您从视图 ( $this->Helpers->load()) 中加载帮助器,但我想从另一个帮助器加载帮助器。

更普遍; 如果您不想在一堆不同的视图中重复,如果数据是 A 类型,则使用助手 A,如果是 B 类型,则使用助手 B,并且助手 A 和 B 共享一些代码,您会怎么做。

如果是这样,可能有更聪明的方法来解决这个问题;请随时分享!

4

1 回答 1

1

If you simply want to use one helper from within another helper, just include it in the $helpers array where you want to use it:

class TrackerHelper extends AppHelper {
    public $helpers = array('BooleanTracker');

    public function someMethod() {
        // Using the other helper
        $this->BooleanTracker->someOtherMethod();
    }
}
于 2012-07-03T15:24:06.197 回答