Activerecord Yii2:活动记录添加不在状态
向活动查询中添加条件的活动记录方式是什么 在yii1.x中,您可以像这样使用CDbCriteriaActiverecord Yii2:活动记录添加不在状态,activerecord,yii,yii2,Activerecord,Yii,Yii2,向活动查询中添加条件的活动记录方式是什么 在yii1.x中,您可以像这样使用CDbCriteria $cr = new CDbCriteria(); $cr->addNotInCondition('attribute', $array); 在Yi2活动记录实现中似乎没有等效的API调用,如何通过活动记录实现这一点?所有查询操作数现在似乎都合并到了每个文档中的yii\db\QueryInterface::Where() 现在可以使用以下内容添加In条件 $query = MyModel::
$cr = new CDbCriteria();
$cr->addNotInCondition('attribute', $array);
在Yi2活动记录实现中似乎没有等效的API调用,如何通过活动记录实现这一点?所有查询操作数现在似乎都合并到了每个文档中的
yii\db\QueryInterface::Where()
现在可以使用以下内容添加In条件
$query = MyModel::find()->where(['attribute'=>$array]);
对于不在状态,格式略有不同
$query = MyModel::find()->where(['not in','attribute',$array]);
对于数字:
$query = MyModel::find()->where('NOT IN('.implode(',', $array).')');
弦乐
$deleteContracts = Contract::find()
->where([
'session_id' => $session_id,
'status' => Contract::STATUS_COMPLETED
])
->andWhere(['not in', 'contract_id', $contracts])
->all();
对我来说,唯一可行的解决办法是:
$query = MyModel::find()->where('`your-attribute` NOT IN(' . implode(',', $array) . ')')->all();
这将失败,我们需要:$query=MyModel::find()->where(['attribute'=>$array])->all();这将是一个in条件,问题是关于不在这里。有关详细信息,请参阅此处:查询中的
$array
是什么?不在“中的空格表示意外这可能对某人有所帮助。
$query = MyModel::find()->where('`your-attribute` NOT IN(' . implode(',', $array) . ')')->all();