php - Yii2 检查 ActiveRecord 是否成功加载记录

标签 php yii2

如何检查数据是否存在于数据库中并加载到 ActiveRecord 模型中。例如,在 Kohana 中,有函数 loaded 来检查 ORM 是否成功加载记录。

  class Model_Image extends ORM {
    public function url($width = NULL)
    {
        if( ! $this->loaded()){
            return NULL;
        }
        ...
    }

我有一个名为 Image 的类,它是从 ActiveRecord 扩展而来的。 Image 类有 url 函数,在函数 url 内我应该检查数据是否已加载,或者是新的?

Yii2中有类似的东西来检查ActiveRecord是否成功加载记录。

最佳答案

当您使用findOne()时(简单地说 one() )在 ActiveRecord 模型上,如果不满足条件,则返回 null .

当您使用findAll()时(简单来说 all() )在 ActiveRecord 模型上,如果不满足条件,则返回空数组。

所以您需要检查的是 ActiveRecord 是否不为空。

示例:

$model = MyActiveRecordModel::findOne(1);
if (empty($model)) {
    // DB row not found
} else {
    // DB row found
}

此外,您还可以检查 bool 属性 isNewRecord型号:

if ($model->isNewRecord) {
    // no previously db data loaded - 
    // new instance of model (new data not saved yet)
}

关于php - Yii2 检查 ActiveRecord 是否成功加载记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42479389/

相关文章:

php - 是否可能有 1 个查询语句

php - http认证不重定向

php - 在javascript中使用PHP变量

php - 在 PHP for 循环中运行 N 次存储过程是否不好?

activerecord - yii2 - 使用 FETCH_KEY_PAIR 数组格式的 activerecord 获取数据

mysql - Yii2:如何从不同表中选择多个字段

Yii 中使用 GridView 进行 Ajax 过滤

在 Yii2 上登录的 REST API 调用

javascript - Symfony2在组件中找不到jquery.js文件

file - YII2 如何为文件类型添加自定义验证规则