我正在尝试使用模型中的搜索功能在视图中过滤表格。
我有两个模型需要从模型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
)FROMtrx_evaluation_details
t
LEFT OUTER 加入trx_evaluation
eval
ON(t
。eval_id
=eval
。id
)WHERE ((eval.evaluatee LIKE:ycp0)AND(employee_id =:ycp1))
我的代码似乎有什么问题。请帮忙..
答案 0 :(得分:1)
从错误消息看,看起来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?)