Я пытаюсь отфильтровать таблицу в моем представлении, используя функцию поиска в моей модели.
У меня есть две модели, которые мне нужны, чтобы получить данные из модели 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 (DISTINCTt
,id
) ОТtrx_evaluation_details
t
ЛЕВАЯ НАРУЖНАЯ
ПРИСОЕДИНИТЬСЯtrx_evaluation
eval
ON (t
,eval_id
знак равноeval
,id
) ГДЕ
((eval.evaluatee LIKE: ycp0) AND (employee_id =: ycp1))
что, кажется, проблема с моим кодом. пожалуйста помоги..
Из сообщения об ошибке видно, что и 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?)
Других решений пока нет …