0

似ているが異なる2種類のデータがあります。共有するプレゼンテーションコードがいくつかありますが、実装方法が異なるものもあります。

私は、ヘルパー(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

別のヘルパー内から 1 つのヘルパーを使用するだけの場合は、それを使用する$helpers配列に含めるだけです。

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

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