可以使用orWhere和Where函数删除

时间:2016-07-12 11:57:59

标签: php frameworks yii2

Yii2框架为什么我不能使用它?

$rows = new Query;
$rows->createCommand()
    ->delete('friends')
    ->Where(['userid' => 1 ,'userid' => 2])
    ->orWhere(['userid' => 2 ,'userid' => 1])
    ->execute();

3 个答案:

答案 0 :(得分:2)

在where()和orWhere()函数中,您使用的是哈希格式([' key' =>' value'])

  

哈希格式哈希格式最适合用于指定多个格式   AND连接的子条件,每个都是简单的相等   断言。它被写成一个数组,其键是列名和   估计列应该是的相应值。

查看代码这相当于

 where userid = 1 and userid = 2 

看一下这个有用的指南http://www.yiiframework.com/doc-2.0/guide-db-query-builder.html

第二但最重要..在Yii2中你有delete()和deleteAll()

  

delete()删除与此活动记录对应的表格行。

     

deleteAll()使用提供的条件删除表格中的行。

答案 1 :(得分:0)

这是工作代码

$rows->createCommand()->delete('friends',['userid' =>[1,2], 'friendid' =>[1,2])->execute();

答案 2 :(得分:-2)

尝试一下

Friends::deleteAll(['and',
            [ 'userid'=>3],
            ['in', 'userid', [1,5,7]]]
        );