GridViewには、モデルの検索部分にいくつかのドロップダウンフィルターがあります。
if ($this->agent_primary != "") {
$criteria->addColumnCondition(array('agent_type_id'=>1, 'agent.agent_id'=>$this->agent_primary));
}
if ($this->agent_voice != "") {
$criteria->addColumnCondition(array('agent_type_id'=>2, 'agent.agent_id'=>$this->agent_voice));
}
if ($this->agent_commercial != "") {
$criteria->addColumnCondition(array('agent_type_id'=>3, 'agent.agent_id'=>$this->agent_commercial));
}
どういうわけかこれを組み合わせる必要があるので、誰かが3つのドロップダウンのうち2つ(または3つすべて)を選択すると正しい結果が得られます。現在、SQLにはaddColumnConditionごとに別々の括弧で囲まれたWHEREがあります。
WHERE(condition1a = a AND condition1b = b)AND(condition2a = a AND condition2b = b)
それ以外の
WHERE(condition1a = a AND condition1b = b)OR(condition2a = a AND condition2b = b)