Могли бы вы мне подсказать, что я не правильно делаю. В общем есть две модели: score и skills. В модели score создал scope с параметром:
Код: Выделить всё
public function sumHardSkills($projectID)
{
$this->getDbCriteria()->mergeWith(array(
'select' => new CDbExpression ( "SUM(value) AS sum"),
'condition' => 'project_id = '.$projectID.' AND type = "hard"',
'group' => 'project_id',
));
return $this;
}
Код: Выделить всё
public function relations()
{
// NOTE: you may need to adjust the relation name and the related
// class name for the relations automatically generated below.
return array(
'skill'=>array(self::BELONGS_TO, 'Skill', 'skill_id'),
);
}
Код: Выделить всё
$sumHardSkills = Score::model()->with('skill')->sumHardSkills($project->id)->findAll();
если with убрать, то работает нормально, но во второй таблице лежит поле type, которое участвует в запросе WHERE.Error 500
trim() expects parameter 1 to be string, array given
При этом, если убрать из select - new CDbExpression ( "SUM(value) AS sum"), то можно искать записи вместе с with.
А вместе не получается все сделать. Работаю над проектом уже вторые сутки, голова уже мало чего соображает, даже не знаю с чего начать копать..
p.s. Еще пробовал указать with сразу в scope, но выходит та же самая ошибка