0

我知道这方面有很多主题,但我搜索并尝试了很多,但仍然无法正常工作。

我有桌子:团队和工人。任何工人都可以被分配到一个团队。所以在工人经理我也想按团队名称搜索工人。

我得到了列等,但是当我输入团队名称的一部分时 - 搜索开始但书面文本消失并且搜索不关心该字段。我用 Firebug 检查了 AJAX 调用,并且有一个名为 teamName 的字段(我在我的 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,
    ));
}
4

2 回答 2

0

使用 mergeWith: 希望它有效。

 if($merge!==null){
            $criteria->mergeWith($merge);
            }

参考:http ://www.yiiframework.com/doc/api/1.1/CDbCriteria#mergeWith-detail

于 2013-03-07T08:49:55.900 回答
0

我找到了有用的扩展来做到这一点: http ://www.yiiframework.com/extension/relatedsearchbehavior/

我无法让它以某种方式工作。我下载了新版本,现在很好。它工作得很好。不过,感谢您的时间。

于 2013-03-07T13:47:39.240 回答