Symfony выдает ошибку 1064 У вас есть ошибка в синтаксисе SQL - PullRequest
0 голосов
/ 13 мая 2018

У меня есть модуль с именем evaulation_symptom , и я пытаюсь создать новый симптом, но когда я нажимаю на новый (valuation_symptom / new ), он выдает следующую ошибку:

500 | Внутренняя ошибка сервера | PropelException [упакованный: SQLSTATE [42000]: синтаксическая ошибка или нарушение прав доступа: 1064 ошибка в вашем синтаксисе SQL; проверьте руководство, которое соответствует вашему Версия сервера MySQL для правильного синтаксиса для использования рядом '=valuation_symptom.ID ORDER BY оценивание_symptom.ORD ASC ,valuation_cause.ORD 'в строке 1]

Я изучил код, и я заметил, что вся проблема заключается в функции EvaluationSymptomAdminPeer с именем getUbferredRemediesBySymptomId и особенно этой строке $ критерий- > addJoin (self :: ID, $ id);

public static function getInferredRemediesBySymptomId($id)
  {
    $criteria = new Criteria();
    $criteria->addSelectColumn("evaluation_remedy.ID");
    $criteria->addSelectColumn("evaluation_remedy.TITLE");

    $criteria->addJoin(self::ID, EvaluationSymptomCausePeer::EVALUATION_SYMPTOM_ID, Criteria::LEFT_JOIN);
    $criteria->addJoin(EvaluationSymptomCausePeer::EVALUATION_CAUSE_ID, EvaluationCausePeer::ID, Criteria::LEFT_JOIN);
    $criteria->addJoin(EvaluationCausePeer::ID, EvaluationCauseRemedyPeer::EVALUATION_CAUSE_ID, Criteria::LEFT_JOIN);
    $criteria->addJoin(EvaluationCauseRemedyPeer::EVALUATION_REMEDY_ID, EvaluationRemedyPeer::ID, Criteria::LEFT_JOIN);
    $criteria->addJoin(self::ID, $id);

    $exCriteria = $criteria->getNewCriterion(self::IS_ACTIVE, 1);
    $exCriteria->addOr($criteria->getNewCriterion(EvaluationCausePeer::IS_ACTIVE, 1));
    $criteria->add($exCriteria);
    //$criteria->addAscendingOrderByColumn(self::ORD);
    //$criteria->addAscendingOrderByColumn(EvaluationCausePeer::ORD);
    $criteria->addAscendingOrderByColumn(self::ORD)->addAscendingOrderByColumn(EvaluationCausePeer::ORD);
    $records = self::doSelectStmt($criteria)->fetchAll(PDO::FETCH_ASSOC);
    $data = array();
    foreach ($records as $key => $record) {
      $data[$record['ID']] = $record['TITLE'];
    }
    return $data;
  }

Идентификатор вышеуказанной функции передается из EvaluationSymptomAdminForm как:

$inferredRemedies = EvaluationSymptomAdminPeer::getInferredRemediesBySymptomId($this->object->getPrimaryKey());
...