gpt4 book ai didi

mysql - save()后自动增量属性始终为空

转载 作者:行者123 更新时间:2023-11-29 19:29:53 27 4
gpt4 key购买 nike

我有表查询,其字段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,尽管数据库中确实出现了具有递增id的新记录。

此外,我在数据库日志中只看到 insert 记录,但没有记录来获取插入的行 id。

出了什么问题?

最佳答案

正如你在vendor/yiisoft/yii2/db/ActiveRecord.php中看到的

已经有一个primaryKey方法

public static function primaryKey()
{
return static::getTableSchema()->primaryKey;
}

返回表架构的正确主键

所以你不应该重新定义这个方法..

该方法专门称为 PrimaryKey() 而不是 getPrimaryKey() .. 最后一个是神奇的 getter .. 并返回 var $primaryKey 的值 ..

如果没有执行插入,可能是您遇到一些验证问题..尝试(仅用于调试)使用save(false)

关于mysql - save()后自动增量属性始终为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41869294/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com