2012-11-17 8 views
0

함수 actionNewAnswer를 호출 할 때마다 카운터가 발생하기를 원합니다. 하지만 지금 카운터는 항상 2입니다. 무엇이 잘못 되었나요?전역/정적 함수의 카운터

public function actionNewAnswer(){  
    static $count = 1; 
    ++$count; 

    $modelAntwoorden = $this->loadModelAntwoorden(); 

    $this->renderPartial('_formAnswer', array(
     'model' => new VraagAntwoord(), 
     'counter' => $count, 
     'modelAntwoorden'=>$modelAntwoorden, 
    ),false,true); 
} 

답변

1

actionNewAnswer() 한 번만 서버에 하나 개의 요청에 호출하고, 다음에 새로운

1 일,

'cache' => 'CFileCache' 

2 config (설정) Controller 클래스에 CONST를 추가하는 추가

const myStaticCount = 'myStaticCount'; 

세번째, 행동에 추가하십시오 .NewAnswer

$count = 0; // comment for zero +1 
if (Yii::app()->cache->offsetExists(self::myStaticCount)) { 
    $count = Yii::app()->cache->get(self::myStaticCount); 
} 
Yii::app()->cache->set(self::myStaticCount, ++$count); 
+0

처음 호출시 1로 이동하려면 '$ count'를 0으로 시작하면 안됩니까? –

+0

@MatteoTassinari 예, 맞습니다! 그러나 저자는 이상한 논리를 가지고 있습니다. 어쩌면 중요 할 수도 있습니다. – Sergey

+0

고마워요! 예, 숫자가 1 인 카운터는 다른 방법으로 생성됩니다. –