Проверьте, был ли DropTable в DAO успешным

Я смотрю на выполнение запроса, как это:

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

Я использую execute() http://www.yiiframework.com/doc-2.0/yii-db-command.html#dropTable()-detail для этого, но я не уверен из документов, если я должен делать это. В частности, я хочу вернуть успех или неудачу удаления таблицы в этом случае. Какой правильный путь? Я вижу, что execute только возвращает количество затронутых строк?

1

Решение

Да, команда 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();
}

Таким образом, если у вас есть ошибка (например, таблица, которую нужно удалить, не существует), вы можете справиться с ней.

2

Другие решения

Других решений пока нет …