0

addCondition()を使用して、タイプ:'id IN(1,2,3,4)'のwhere句を既存のモデルに追加できるかどうか疑問に思いました。Model_Tabelのコメントによると、DB_dsqlインスタンスを指定すると可能である必要があります。

function addCondition($field,$cond=undefined,$value=undefined)
{
    // You may pass plain "dsql" expressions as a first argument
    if($field instanceof DB_dsql && $cond==undefined && $value==undefined){
        $this->_dsql()->where($field);
    return $this;
}

しかし、私がこれを行おうとすると:

$conflicto=$this->add('Model_Conflicto');
$conflicto->addCondition($this->api->db->dsql()->where('id IN'.$str));

無効なSQLステートメントが表示されます。これには、新しいwhere句にselect全体が含まれています。

SQL_CALC_FOUND_ROWS *、を選択しますconflictoidfrom conflictowhere(select * where id IN(14、60、37、39、41、43、52、57、141、144、145、183、187、14))

私はおそらくここで本当に間違ったことをしているのですか?これを私のモデルで機能させるために「whereidIN」を含める正しい方法は何でしょうか?

ありがとう、

4

1 に答える 1

0

試しましたか

$model->addCondition('id',array(14,60,37,....));
于 2012-05-18T16:36:55.387 に答える