У меня есть таблица query
с полем id
который автоинкрементный первичный ключ.атрибут автоинкремента всегда равен нулю после сохранения()
Модель
class Query extends \yii\db\ActiveRecord
{
public static function tableName()
{
return '{{%query}}';
}
public function rules()
{
return [
[['id', 'created_at'], 'integer'],
[['data'], 'string'],
];
}
}
Применение
$q = new Query();
$q->created_at = time();
$q->data = Json::encode($query);
if ($q->save())
echo $q->id == null ? "null" : $q->id;
else
echo "Validation error";
Результат null
, хотя новая запись с идентификатором инкрементируется имеет место в базе данных.
Также я вижу только запись insert
в журнале db, но нет записи для получения вставленного идентификатора строки.
Что случилось?
то же самое произойдет ли при удалении 'PrimaryKey()' метод? – Bizley
Почему вы переопределили метод primaryKey()? .. ActiveRecord уже этот метод – scaisEdge
Ну, удалили 'primaryKey()'. Вызов неявных 'primaryKey()' возвращает ** ['id'] **, 'getPrimaryKey()' возвращает ** null **. – Alexey