一般に、コントローラーからのみモデルを呼び出してからビューに渡すことをお勧めします。次に例を示します。
public function actionView($id)
{
$this->render('view', array(
'model' => $this->loadModel((int)$id),
));
}
次にmodel
、ビューで を使用して情報を表示できます。
問題は、ビューにフラグメント キャッシングを実装したいということです。
<?php if($this->beginCache($id, array('duration'=>3600))) { ?>
...content to be cached...
<?php $this->endCache(); } ?>
ただし、モデルはコントローラーからロードされているため、SQL クエリはとにかく実行されます。どうすればこれを防ぐことができますか?
私が現在見つけている唯一の代替手段は、(キャッシュされたセクションで) ビューからモデルをロードするか、データ キャッシングを実行することですが、フラグメント キャッシングを使用することをお勧めします!