检查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()-详细信息,但从文件中我不确定我是否应该这样做。我特别想返回在这种情况下丢弃表的成功或失败。正确的方法是什么?我看到execute似乎只返回受影响的行数?

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

添加

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();
    }

通过这种方式,如果您有错误(例如:要删除的表不存在),您可以对其进行管理。