使用addCondition()将“id IN”子句添加到Model

时间:2012-05-18 16:02:31

标签: atk4

我想知道我是否可以使用addCondition()添加类型的where子句:' id IN(1,2,3,4)'到现有的模型?根据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:

conflicto中选择SQL_CALC_FOUND_ROWS *,idconflicto其中(select * where id IN(14,60,37,39,41,43,52,57,141, 144,145,183,187,14))

我可能在这里做错了什么? 什么是正确的方式来包括'其中id IN'让这个与我的模型一起工作?

谢谢,

1 个答案:

答案 0 :(得分:0)

你试过吗

$model->addCondition('id',array(14,60,37,....));