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::$columnToChange

どなたか、これが機能しない理由と、 ExamHistoryPeer::$columnToChangeで機能させる方法を教えてください。

4

2 に答える 2

1

PHPは、定数ではなく静的プロパティを取得したいと考えています。$サインインが原因ですExamHistoryPeer::$columnToChange

代わりconstant('ExamHistoryPeer::columnToChange')に、その定数の値を取得するために使用します。

于 2013-10-11T10:32:01.130 に答える
0

あなたは多分これを行うことができますか?

$oReflection = new ReflectionClass(ExamHistoryPeer);

//Value of the Constant
$mValue = $oReflection->getConstant($columnToChange);
于 2013-10-11T10:52:31.873 に答える