2

次のようなクエリがあります。

$record=books::model()->cache(10000)->find('id=:id',array(":id"=>$id));

Yii は CDbCache を使用して結果をキャッシュ テーブルに保存します。

id     expire      value 
--     ------      ------

私の質問は:

キャッシュ レコードの ID を取得する方法 - この ID は yii によって生成されます - yii キャッシュ テーブルで?

4

2 に答える 2

1

キャッシュIDを取得するためのパブリックな方法はありません。キャッシュIDには多くの変数が組み込まれているため、本当に必要な場合は可能ですが、Yiiの奥深くでは非常に暗くなります。

コメントに基づく回答:

レコードに最後にキャッシュされた時間をいつでも設定でき、それを使用して残り時間を計算できます。ただし、これはページスパン全体にわたって持続しません。これは、結果としてキャッシュが発生し、再度読み取られないためです。したがって、オプションは次のとおりです。

  • キャッシュを手動で実行し、計算に使用されるオブジェクトに対する時間を保存します
  • または、セッションでプルされた各IDの時間を保存し、それを使用して計算します。
于 2012-08-17T10:02:58.640 に答える