2013-10-11 1 views
1
$columnToChange = $this->getColumnName($questionNo); //Gets EXAMHIST_Q2_JUGDGE 
    $conn = Propel::getConnection(ExamHistoryPeer::DATABASE_NAME); 
     //Update the approriate question with user answer in exam history table; 
     $selectCriteria = new Criteria(); 
     $selectCriteria->add(ExamHistoryPeer::EXAM_HISTORY_ID, $examHist->getExamHistoryId()); 
     $updateCriteria = new Criteria(); 
     //This shows fatal error 
     $updateCriteria->add(ExamHistoryPeer::$columnToChange, $userAnswer); 
     //$updateCriteria->add(ExamHistoryPeer::EXAMHIST_Q2_JUGDGE, $userAnswer); //This works 
     BasePeer::doUpdate($selectCriteria, $updateCriteria, $conn); 

Фатальная ошибка: Доступ к необъявленной статического свойства: ExamHistoryPeer :: $ columnToChangePHP, области видимости с переменной передается

Может ли из вас, ребята, скажите, пожалуйста, почему не могу это работает, и как заставить его работать с ExamHistoryPeer :: $ columnToChange

ответ

1

PHP думает, что вы хотите, чтобы статическое свойство не было постоянным. Это из-за $ExamHistoryPeer::$columnToChange.

Вместо этого используйте constant('ExamHistoryPeer::columnToChange') для получения значений этой константы.

0

Возможно, вы можете это сделать?

$oReflection = new ReflectionClass(ExamHistoryPeer); 

//Value of the Constant 
$mValue = $oReflection->getConstant($columnToChange);