Yii Получить данные из другой модели, используя связь

Я пытаюсь отфильтровать таблицу в моем представлении, используя функцию поиска в моей модели.
У меня есть две модели, которые мне нужны, чтобы получить данные из модели Evaluation к другой модели EvaluationDetails,

у меня есть это в моем EvaluationDetails модель

public function relations() {
return array(
'eval' => array(self::BELONGS_TO, 'Evaluation', 'eval_id'),
);
}

у меня также есть это в моей функции поиска

public function search($employee = '', $search_date_start = '', $search_date_end = '', $search = '') {

$criteria = new CDbCriteria;
$criteria->with = array('eval' => array('together' => true));
$criteria->compare('employee_id', $this->employee_id);
$criteria->compare('remarks', $this->remarks, true);
$criteria->compare('eval_id', $this->eval_id);
$criteria->compare('eval.evaluatee', $this->evaluatee_search);

$criteria->addSearchCondition('eval.evaluatee', $search);

if ($employee != '')
$criteria->compare('employee_id', $employee->company_id);

return new CActiveDataProvider($this, array(
'criteria' => $criteria,
));
}

Я пытаюсь отфильтровать таблицу, в которой пользователь будет искать имя, передать значение в $search который затем используется в функции поиска в моем EvaluationDetails модель
С этим я получаю ошибку.

CDbCommand не удалось выполнить инструкцию SQL: SQLSTATE [23000]:
Нарушение ограничения целостности: 1052 Столбец employee_id, где
Статья неоднозначна. Выполненный оператор SQL был: SELECT
COUNT (DISTINCT t,id) ОТ trx_evaluation_details t ЛЕВАЯ НАРУЖНАЯ
ПРИСОЕДИНИТЬСЯ trx_evaluation eval ON (t,eval_idзнак равноeval,id) ГДЕ
((eval.evaluatee LIKE: ycp0) AND (employee_id =: ycp1))

что, кажется, проблема с моим кодом. пожалуйста помоги..

0

Решение

Из сообщения об ошибке видно, что и EvaluationDetails, и Evaluation имеют вызов поля «employee_id» (я не уверен)

Но если это так, вам нужно заменить

 $criteria->compare('employee_id', $employee->company_id);

с

 $criteria->compare('t.employee_id', $employee->company_id);

Чтобы явно указать yii, это поле из таблицы EvaluationDetails.

Кстати, вы используете $ employee-> company_id (должно быть $ employee-> employee_id?)

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]