を使用して、コントローラーのインデックスアクションにビューキャッシュを設定しています
class DiaryController extends AppController {
...
var $cacheAction = array('index' => "+56 hours");
function index($week = null) {
...
}
}
で次のオプションを使用しますapp/config/core.php
。
Configure::write('Cache.check', true);
...
Cache::config('default', array('engine' => 'File'));
ダイアリー コントローラー (およびサイトの残りの部分) の index アクションは、AuthComponent
withを使用して、認証されたユーザーのみがアクセスできるようにする必要があります。
class AppController extends Controller {
...
var $components = array('Auth', 'Security', 'Session','Cookie','RequestHandler');
function beforeFilter() {
$this->Auth->userModel = 'Admin';
...
}
...
}
を使用して、サイトのルートをログインフォームにマップしたい
Router::connect('/', array('controller' => 'admin', 'action' => 'login'));
でapp/config/routes.php
。ログアウトしてからmytestsite.com/diary/index
ブラウザにアクセスしようとするまで、すべてが正常に機能しているように見えます。ログインしていなくても、ページにアクセスできます。 にファイルがある URL にしかアクセスできないため、これはキャッシュの問題だと思いますapp/tmp/cache/views
。$week
インデックス アクションのパラメーターをキャッシュ ファイルがない値に変更すると、You are not authorized to access that location.
メッセージが表示されます。
奇妙なことに、サイトのルートを の index アクションにマッピングするとDiaryController
、
Router::connect('/', array('controller' => 'diary', 'action' => 'index'));
(再びapp/config/routes.php
) この問題はありません。ログインしていないときは、キャッシュされたダイアリー インデックス ビューにアクセスできません。
以前にこの問題を経験した人はいますか? 私が見逃したかもしれない何かを提案できますか?または、これがコア ファイルのバグかどうか知っていますか? CakePHP 1.3.15 を使用しています。