检查 DAO 中的 DropTable 是否成功

Check if DropTable in DAO was successful

我正在考虑执行这样的查询:

Yii::$app->db->createCommand()->dropTable($r)

我一直在使用 execute() http://www.yiiframework.com/doc-2.0/yii-db-command.html#dropTable()-detail 来这样做,但我不确定文档是否应该这样做。在这种情况下,我特别想 return 删除 table 的成功或失败。什么是正确的方法?我看到执行似乎只 return 受影响的行数?

是执行return行数影响。在这种情况下,一行受到影响。为了更好地管理错误,您还可以管理错误情况

添加

use yii\base\Exception;
use yii\web\NotFoundHttpException;

并且在你的函数中添加

    try {
     Yii::$app->db->createCommand()->dropTable($r)->execute();
    }
    catch (\yii\db\Exception $e) {
        // yii db exception 
        $populateError =  $e->getMessage();
    }
    catch (\Exception $e) {
        // not a db exception
        $populateError = $e->getMessage();
    }

这样如果你有错误(例如:要删除的table不存在)你可以管理它。