【问题标题】:Yii2 Use Primary Key from ActiveRecord model in the same function on createYii2 在创建时使用 ActiveRecord 模型中的主键
【发布时间】:2018-10-18 10:58:26
【问题描述】:

我不确定是否有其他人在 Yii2 中遇到过这个问题,但是当你有一个带有自动增量主键的表时,你不需要在调用 ActiveRecord->save() 时包含主键属性值对象的第一次。

这很好,因为您可以更快地编写创建函数,而无需检查主键并在 PHP 中自己进行增量。但是这里的问题是当您尝试在同一个函数 ActiveRecord->save() 中使用主键时;调用保存后,即使数据库中的行已经被写入,它也会出现一个错误,指出它尚未设置。

例如

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

我可以通过获取数据库中的最新条目并以这种方式获取主键来解决此问题,但似乎上述方法应该有效。是否有其他方法可以更新 ActiveRecord 对象中的主键?

【问题讨论】:

    标签: activerecord yii2 primary-key


    【解决方案1】:

    您可以使用getPrimaryKey() 函数来获取主键的值。例如:

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

    【讨论】:

      猜你喜欢
      • 2015-11-15
      • 2020-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多