8

アプリに CacheHelper を追加しました。私のAPP/Config/core.phpには

Configure::write('Cache.check', true);

APP/Config/bootstrap.php に

Configure::write('Dispatcher.filters', array(
  'AssetDispatcher',
  'CacheDispatcher'
));

私のコントローラーには次のものがあります:

public $helpers = array('Text', 'Cache');
public $cacheAction = "1 hour";

このコントローラーにも AppController にも直接コールバックはありません。問題は、各ページが 1 回しかロードされないことです (たとえば、キャッシュがクリアされた後)。2回目のリクエストで戻ってきます

Fatal Error

Error: Class 'AppController' not found  

キャッシュがオフになっている場合、すべてが正常に機能します。

CakePHP のバージョンは 2.2.3 です

デバッグ ログ:

 2012-12-24 12:21:00 Error: Fatal Error (1): Class 'AppController' not found in    [/Volumes/../app/Controller/NewsController.php, line 2]
 2012-12-24 12:21:00 Error: [FatalErrorException] Class 'AppController' not found
 #0 /Volumes/../lib/Cake/Error/ErrorHandler.php(161): ErrorHandler::handleFatalError(1,     'Class 'AppContr...', '/Volumes/Data/D...', 2)
 #1 [internal function]: ErrorHandler::handleError(1, 'Class 'AppContr...', '/Volumes/../D...', 2, Array)
 #2 /Volumes/../lib/Cake/Core/App.php(926): call_user_func('ErrorHandler::h...', 1, 'Class 'AppContr...', '/Volumes/../D...', 2, Array)
 #3 /Volumes/../lib/Cake/Core/App.php(899): App::_checkFatalError()
 #4 [internal function]: App::shutdown()
 #5 {main}

ニュースコントローラー:

<?php
class NewsController extends AppController {
public $components = array('Security', 'ImageTool', 'Uploader');
public $paginate = array(
        'fields' => array('News.id', 'News.created'),
        'limit' => 5,
        'contain' => array(),
        'order' => array('News.id' => 'DESC'));

public $helpers = array('Text', 'Cache');
public $cacheAction = "1 hour";
4

2 に答える 2

19

そして勝者は... App::uses('AppController', 'Controller'); コントローラーコードの先頭。

App::uses('AppController', 'Controller');

class NewsController extends AppController {
public $helpers = array('Cache');
public $cacheAction = array(
    'index'  => 48000
);

public function index() {

}
public function clear() {
    clearCache();
}
}

これがまだクックブックに含まれていない理由はわかりません。

于 2012-12-26T15:22:11.227 に答える
0
<?php
namespace App\Controller;
use App\Controller\AppController;
class StudentsController extends AppController{}

これは私のために働いた。

于 2016-03-24T22:22:19.200 に答える