我知道这里有很多话题,但是我搜索过并尝试过这么多,但它仍然没有用。
我有桌子:团队和工人。任何工作人员都可以分配到团队。所以在工人经理我想按团队名称搜索工人。
我得到了专栏等,但是当我输入团队名称的一部分时 - 搜索开始但书面文字消失,搜索并不关心该字段。我用Firebug检查了AJAX调用,并且有一个名为teamName的字段(我将public字段添加到了我的Worker模型类中)。但是当我在我的搜索方法中print_r标准时 - 没有条件。 怎么可能?如何通过相关字段执行搜索?
编辑(我的serach()方法):
public function dsearch()
{
// Warning: Please modify the following code to remove attributes that
// should not be searched.
$criteria=new CDbCriteria;
$criteria->compare('idWorker',$this->idWorker);
$criteria->compare('idLeaderType',$this->idLeaderType);
$criteria->compare('t.idTeam',$this->idTeam);
$criteria->compare('idVoip',$this->idVoip);
$criteria->compare('workLogin',$this->workLogin,true);
$criteria->compare('workPass',$this->workPass,true);
$criteria->compare('name',$this->name,true);
$criteria->compare('surname',$this->surname,true);
$criteria->compare('madeCalls',$this->madeCalls);
$criteria->compare('deleted',$this->deleted);
$criteria->compare('liveChanges',$this->liveChanges);
$criteria->compare('confirmer',$this->confirmer);
$criteria->compare('oldWorkerNum',$this->oldWorkerNum);
$criteria->compare('idDepart',$this->idDepart);
$criteria->compare('Team.name', $this->teamName, true);
$criteria->with=array('Team');
$criteria->together = true;
return new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
}
答案 0 :(得分:0)
使用mergeWith:希望它有效。
if($merge!==null){
$criteria->mergeWith($merge);
}
参考:http://www.yiiframework.com/doc/api/1.1/CDbCriteria#mergeWith-detail
答案 1 :(得分:0)
我找到了有用的扩展来做到这一点: http://www.yiiframework.com/extension/relatedsearchbehavior/
我无法以某种方式让它工作。我下载了新版本,现在很好。 它工作得很好。谢谢你的时间。