これはしばらく答えていないので、自分の解決策を書いています。ここでは、必要に応じてキャッシュをクリアするために使用できる関数を示します。
管理ツールのコントローラを$ uses = falseで作成したので、関連するモデル/テーブルが検索されません。次に、現在設定されているすべてのエンジンを表示する関数を作成しました。構成されたキャッシュエンジンがユーザによって選択された場合、それは__clearCache()関数を呼び出す:
public function admin_cache_manager($clear=false, $engineName=''){
$this->layout = 'manager';
$engines = Cache::configured();
if($clear){
if($engineName == 'all'){
$status = $this->__clearCache($engines);
}
else{
$clearEngine[0] = $engineName;
$status = $this->__clearCache($clearEngine);
}
$this->set(compact('status'));
}
foreach($engines as $key => $engine){
$configs[$key] = Cache::config($engine);
}
$this->set(compact('engines'));
$this->set(compact('configs'));
}
__clearCache()関数は、実際に設定されたキャッシュをクリアし、ステータスを返す:
private function __clearCache($engines=array(), $check=false){
foreach($engines as $engine){
if(Cache::config($engine)){
if(Cache::clear($check, $engine)){
$status[$engine] = 'Cache Cleared';
}
else{
$status[$engine] = 'Clear Cache Failed';
}
}
else{
$status[$engine] = 'Engine Not Configured.';
}
}
return $status;
}
プラグイン[このような](https://github.com/ceeram/clear_cache)が役立つかもしれません。直接またはテンプレートとして、独自のキャッシュクリア機能を作成します。 – AD7six
ありがとう@ AD7six。私はちょうど見ていない方法や設定で造られたものを期待していましたが、それはそうではないようです。 – JadedCore