ActiveRecord инсерт в таблицу с тригером

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
Jormungan
Сообщения: 6
Зарегистрирован: 2019.01.19, 12:46

ActiveRecord инсерт в таблицу с тригером

Сообщение Jormungan » 2019.10.23, 14:23

Все привет.

Столкнулся с проблемой при сохранение новой записи, база MS SQL

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

$comment = new Comment();
$comment->comment = 'something';
$comment->save();
Собственно результат выполнения false, а запись сохраняется.
Начала копать, проблема оказалась в том, что на таблицу навешен триггер и при сохранение есть 2 результата выполнения:
- 0 rows affected (результат триггера)
- 1 row affected (результат инсерта)

В \yii\db\Command::execute после выполнения запроса берется кол-во строк

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

$n = $this->pdoStatement->rowCount();
В итоге $n = 0, в следствии чего \yii\db\Schema::insert возвращает false

Что с этим можно сделать?

Аватара пользователя
Alexum
Сообщения: 675
Зарегистрирован: 2016.09.26, 10:00

Re: ActiveRecord инсерт в таблицу с тригером

Сообщение Alexum » 2019.10.23, 15:19

Попробуйте в триггере явно указать SET NOCOUNT ON.

Jormungan
Сообщения: 6
Зарегистрирован: 2019.01.19, 12:46

Re: ActiveRecord инсерт в таблицу с тригером

Сообщение Jormungan » 2019.10.23, 15:25

Работает, спасибо огромное

Закрыто