我想输出不等于某些值的变量,但它返回错误
Failed to prepare SQL: SELECT * FROM `tblsuunit` WHERE `unitid` != :qp0
第一个模型有两个模型,我们得到了ids数组
public function actionSunits($id){
$unitslocation = new Unitslocation();
$id2 = Unitslocation::find()->where(['officelocationid'=>$id])->all();
foreach( $id2 as $ids){
print_r($ids['unitid']."<br>");
}
}
这将输出ID为
8
9
11
12
13
14
16
然后我想取id并比较另一个模型(单位模型)并得到与上面不相似的id值然后输出
所以我添加了
$idall = Units::find()->where(['!=', 'unitid', $ids])->all();
因此整个控制器动作变为
public function actionSunits($id){
$unitslocation = new Unitslocation();
$id2 = Unitslocation::find()->where(['officelocationid'=>$id])->all();
foreach( $id2 as $ids){
$idall = Units::find()->where(['!=', 'unitid', $ids])->all();
}
var_dump($idall);
}
这是单位模型表:
如果它正在工作,它应该返回7和10
可能有什么不对......
答案 0 :(得分:1)
您应该修改代码并使用public void deleteFromFavouriteDatabase(int rowID) {
SQLiteDatabase db = this.getWritableDatabase();
db.delete(FAVOURITE.TABLE_NAME, FAVOURITE.KEY_ID + " = " + rowID, null);
db.close();
}
条件,例如:
not in
答案 1 :(得分:0)
尝试:
$idall = Units::find()->where(['not in','unitid',$ids])->all();
信息:https://github.com/yiisoft/yii2/blob/master/docs/guide/db-query-builder.md
操作数1应该是列或DB表达式。操作数2可以是 数组或查询对象。