Yii2 Использовать первичный ключ из модели ActiveRecord в той же функции при создании - PullRequest
0 голосов
/ 18 октября 2018

Я не уверен, что кто-то еще сталкивался с этим в Yii2, но когда у вас есть таблица с первичными ключами с автоинкрементом, вам не нужно включать значение атрибута первичного ключа при вызове ActiveRecord-> save () дляобъект в первый раз.

Это хорошо, поскольку вы можете писать свои функции создания быстрее, не проверяя первичный ключ и не увеличивая его самостоятельно в PHP.Однако здесь возникает проблема, когда вы пытаетесь использовать первичный ключ в той же функции ActiveRecord-> save ();после вызова сохранения произойдет ошибка, сообщающая, что она не была установлена, даже если строка в базе данных уже записана.

Например

public function actionCreate(){
     $model = new Object;
     $model->save();
     print_r(Object->findOne($model->primary_key_id))
}

Я могу обойти это, просто получив самую последнюю запись в базе данных и получив первичный ключ таким образом, но, похоже, вышеприведенное должно работать.Есть ли другой способ обновить первичный ключ в объекте ActiveRecord?

1 Ответ

0 голосов
/ 18 октября 2018

Вы можете использовать функцию getPrimaryKey (), чтобы получить значение первичного ключа.Например:

$model = new Object;
$model->save();
echo $model->getPrimaryKey(); // print primary key value
...