Yii2:检查数据库中是否存在ActiveRecord模型

问题描述:

如何检查数据库中是否存在模型? 在Yii的1版本,它是如此 User::model()->exist()Yii2:检查数据库中是否存在ActiveRecord模型

在Yii2您可以添加exists()到您的查询链:

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

(生成的SQL是这样的:SELECT 1 FROM `tbl_user` WHERE `id`=1

这里也是Query->exists()取自the Yii2 source.

/** 
    * Returns a value indicating whether the query result contains any row of data. 
    * @param Connection $db the database connection used to generate the SQL statement. 
    * If this parameter is not given, the `db` application component will be used. 
    * @return boolean whether the query result contains any row of data. 
    */ 
    public function exists($db = null) 
    { 
      $select = $this->select; 
      $this->select = [new Expression('1')]; 
      $command = $this->createCommand($db); 
      $this->select = $select; 
      return $command->queryScalar() !== false; 
    } 

if(Mastersettings::find()->where(['id'=>1,'status'=>1])->exists()) 
{      
    //....... Your code Here ...... 
} 

http://yii2ideas.blogspot.in/2017/06/yii2-database-operations.html