Как проверить наличие модели в БД?
В версии Yii 1 это было так
User::model()->exist()
Yii2: проверить наличие модели ActiveRecord в базе данных
Ответ 1
В Yii2 вы можете добавить exists()
в цепочку запросов:
User::find()
->where( [ 'id' => 1 ] )
->exists();
(Сгенерированный SQL выглядит так: SELECT 1 FROM `tbl_user` WHERE `id`=1
.)
Здесь также Query->exists()
взято из источника Yii2.
/**
* 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;
}
Ответ 2
if(Mastersettings::find()->where(['id'=>1,'status'=>1])->exists())
{
//....... Your code Here ......
}
http://yii2ideas.blogspot.in/2017/06/yii2-database-operations.html