如何删除Yii2中的行?

时间:2015-07-28 09:13:05

标签: yii2

我想根据某些条件删除数据库中的一行。我试过这个

$fanclub        =   FanClub::find()->where(['user_id'=>$userid])->
            andwhere(['crew_member_id'=>$id])->one();
            if($fanclub)
            {
                $fanclub->delete();
            }

这是删除数据库中某行的正确方法吗?

4 个答案:

答案 0 :(得分:19)

使用模型(@import libxml;)时,是的,这是正确的方法。

您可以使用ActiveRecord删除模型。结果,相关表格中的相应行将被删除。

您可以将$model->delete()beforeDelete()事件处理程序与此方法一起使用来处理与删除相关的一些任务。

不使用模型的替代方案:

afterDelete()

\Yii::$app
    ->db
    ->createCommand()
    ->delete('users', ['id' => 1])
    ->execute();

答案 1 :(得分:1)

$x = Yii::$app->db->createCommand("
    DELETE FROM group_members 
    WHERE group_id = '$id' 
    AND member_id = '$usr'
")->execute();

答案 2 :(得分:1)

首先获得记录,但是您可以直接进行记录

if (limit != null || pageby != null) { .. }

答案 3 :(得分:-1)

您可以使用这种方式

ProjectEmployee::deleteAll(['and',
            [ 'employee_id'=>$this->id],
            ['in', 'project_id', [2,5,7]]]
        );