我的表格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
,但数据库中确实出现了带有递增ID的新记录。
此外,我在db log中只看到insert
条记录,但没有记录来获取插入的行ID。
出了什么问题?
答案 0 :(得分:0)
你可以在vendor / yiisoft / yii2 / db / ActiveRecord.php中看到
已有一个primaryKey方法
public static function primaryKey()
{
return static::getTableSchema()->primaryKey;
}
返回tableSchema的正确primaryKey
所以你不应该重新定义这种方法..
该方法具体称为primaryKey()而不是getPrimaryKey()..这最后一个是魔术getter ..并返回var $ primaryKey的值..
如果没有执行插入可能会有一些验证问题..尝试(仅用于调试)使用save(false)