Yii2 保存后如何获取模型主键值

Yii2 保存后如何获取模型主键值,yii2,yii2-advanced-app,Yii2,Yii2 Advanced App,保存模型后,当我试图从数据库中获取主键(自动增量)时,我遇到了一个问题 在数据库中,选项卡没有主键,因此我使用以下方法设置它: public static function primaryKey(){ return ['id_cod']; } 我把它从模型规则中删除了 当我保存模型时,所有数据都保存在包含的数据库中id\u cod,但如果我尝试访问此属性,它将为空 $evento = new Evento(); //populate the model with some data /

保存模型后,当我试图从数据库中获取主键(自动增量)时,我遇到了一个问题

在数据库中,选项卡没有主键,因此我使用以下方法设置它:

public static function primaryKey(){
    return ['id_cod'];
}
我把它从模型规则中删除了

当我保存模型时,所有数据都保存在包含的数据库中
id\u cod
,但如果我尝试访问此属性,它将为空

$evento = new Evento();
//populate the model with some data
//..... eg: $evento->name = 'name';
//save model
$evento->save();
$evento->refresh();

echo Yii::$app->db->getLastInsertID(); // gives me the correct id_cod but i think it's not the correct way
echo $evento->id_cod;//gives me null
echo $evento->name;//gives me name 

保存模型后如何获取id\u cod?

New
model
?它应该是ActiveRecord的实例。或者它是一个,你刚刚命名为Model?我将命名为Model,例如,它是ActiveRecord的一个istance。我将用另一个名称更新问题
id\u cod
是如何在数据库中生成的?是否返回了
save
方法
true
?id\u cod是自动递增的,并创建了它(
getLastInsertID()
为我提供了正确的id\u cod)。Save方法返回true(模型为validate)。它看起来像是
ActiveRecord::insertInternal
根据
Schema::insert()
返回的结果设置主键值。该方法在表架构中查找主键,而不是在模型的
primaryKey()
方法中。因此,
getLastInsertID()
可能是获得该ID的唯一方法。但最好使用
$evento->getDb()
而不是
Yii::$app->db