yii2保存,检查是否存在,如果是,则返回id,如果没有,则创建(并返回id)

问题描述 投票:3回答:3

我想知道yii2中是否有一个函数我想象类似于save(),会做什么如下:检查db中是否存在具有这些属性的给定记录,如果是,它会返回id,如果不是,它会创建它并回馈id。我觉得这很酷。可能有类似的东西。能帮到我,我在哪里可以找到它?谢谢!

save yii2 exists
3个回答
3
投票

我不认为有特定的功能,但除了保存,你还可以使用exists

$exists = ModelName::find()->where( [ 'id' => 1 ] )->exists();

if($exists) {
  //it exists

} else {
  //doesn't exist so create record

}

1
投票

BaseActiveRecord类中的方法save()具有类似的功能,但它返回一个布尔值是否保存成功。您可以在save()调用后获取主键值

$model->getPrimaryKey();


1
投票
$model = ModelName::findOne(1) ?? new ModelName();
//or 
$model = ModelName::find()->where(['id' => 1])->one() ?? new ModelName();
  1. 如果'id'是主键
  2. 如果不
© www.soinside.com 2019 - 2024. All rights reserved.