Как проверить пустое поле или нет при создании новой записи в модель?

Всё что касается построения API
Ответить
criminalist
Сообщения: 14
Зарегистрирован: 2019.12.20, 06:58

Как проверить пустое поле или нет при создании новой записи в модель?

Сообщение criminalist »

Здравствуйте, как можно проверить пустое поле id или нет и в зависимости от этого выполнить метод,

Код: Выделить всё

public function beforeSave($insert)
    {
        //Yii::app()->db->getLastInsertId();

        if (parent::beforeSave($insert)) {
            //if ($this->isNewRecord) {
            //if ($this->id != ''){

                    //$this->id = '111';
                    if ($this->db->driverName === 'sqlsrv') {
                        if (!$this->db->getIsActive()) {
                            $this->db->open();
                        }
                        if ($this->db->getIsActive()) {
                            $this->db->pdo->setAttribute(constant('PDO::SQLSRV_ATTR_DIRECT_QUERY'), true);
                            \Yii::$app->db->createCommand('SET IDENTITY_INSERT {{PRECEPT}} ON')->execute();
                        }
                    }
            //}
            return true;

        } else {
            return false;
        }
    }
Текущий метод позволяет нам писать в базу SQL server собственные id, а не автоинкрементные, но при этом он же не дает записать автоинкремент если поле id пусто.

Вопрос заключается в том как можно организовать проверку на пустое поле id, в таком случае не выполнять метод и не запускать PDO::SQLSRV_ATTR_DIRECT_QUERY
criminalist
Сообщения: 14
Зарегистрирован: 2019.12.20, 06:58

Re: Как проверить пустое поле или нет при создании новой записи в модель?

Сообщение criminalist »

yiiliveext писал(а): 2020.01.24, 13:47 Видимо if (!empty($this->id))
Спасибо, пробовал в пятницу не получилось, видимо под конец недели уставший, сейчас добавил условия и все получилось.
Ответить