これにはたくさんのトピックがあることは知っていますが、検索して試してみましたが、まだ機能していません。
私はテーブルを持っています:チームとワーカー。任意のワーカーをチームに割り当てることができます。そのため、Workers Manager で、Team 名でも Workers を検索したいと考えています。
コラムなどは取得したのですが、チーム名の一部を入力すると検索が始まるのですが、書いた文字が消えてフィールドを気にせず検索されてしまいます。Firebug で AJAX 呼び出しを確認したところ、teamName というフィールドがあります (Worker モデル クラスに public フィールドを追加しました)。しかし、検索メソッドで条件を 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,
));
}