4

私は自分のアプリにcakephp2.1.1を使用しています。私はコントローラーを持っていて、このコントローラーでファイルキャッシュを使用しています。コントローラのアクションでは、プラグインNUSOAPを使用してSOAPServiceを呼び出します。

私には2つの行動があります:

1.インデックス

public function index() {
    $items = Cache::read('items', 'tenMinutes'); //tenMinutes is the configuration of cache

    if($items){
        $service = new Service();
        $items = $service->callService();
        Cache::write('items',$items,'tenMinutes');
    }

    $this->set('items',$items);
}

2. get_result

public function get_result() {
    $items = Cache::read('items','tenMinutes');

    if($items){

        //start block code filter items by params  
        ...
        //end

        $service = new Service();
        $result = $service->callService2($items);
        $this->set('result',$result);

    } else {

        //redirect index to load ítems
        $this->redirect(array('controller' =>'controllerName', 'action' => 'index'));
    }
}

キャッシュの構成は次のとおりです。

Cache::config('tenMinutes', array(
        'engine' => 'File', //[required]
        'duration'=> '10 minutes', //[optional]
        'path' => CACHE, //[optional] use system tmp directory - remember to use absolute path
        'prefix' => 'cake_10_', //[optional]  prefix every cache file with this string
    ));

インデックスアクションを呼び出して、cakephpがキャッシュに書き込むのが初めての場合、次のエラーが発生します。

致命的なエラー:172行目のC:\ wamp \ www \ myapp \ lib \ Cake \ View \ Helper\HtmlHelper.phpでコンストラクターを呼び出すことができません

2回目にインデックスを入力し、キャッシュがすでにいっぱいになっている場合は、ボタンをクリックして2番目のアクション(get_result)に移動します。これにより、同じエラーが返されます。

誰かが私を助けることができますか?

ありがとう

4

1 に答える 1

1

HtmlHelperはHelperから継承します。プロジェクトのどこかにカスタムクラスHelperを定義していて、HtmlHelperが代わりにそのコンストラクターを使用しようとしている可能性があります。

于 2012-04-27T07:17:24.910 に答える