Yii2:如何检查activeRecord模型是否为空

时间:2016-11-23 06:16:01

标签: php activerecord model yii2

我正在尝试从数据库中获取数据,如下所示:

let menuButton = self.navigationItem.rightBarButtonItem
    if self.revealViewController() != nil {
        menuButton?.target = self.revealViewController()
        menuButton?.action = "revealToggle:"
        self.view.addGestureRecognizer(self.revealViewController().panGestureRecognizer())
        self.view.addGestureRecognizer(self.revealViewController().tapGestureRecognizer())

    }

当我检查$model = ProductFiles::findAll(['product_id' => $product_id]); 时,如果模型为空并且渲染相同模型进行查看,则返回count($model),它将0作为count($model)返回。所以,我想知道是否有任何方法可以检查1 Yii2对象,如果它是空的(我试过activeRecord但结果相同)。任何帮助都非常感谢。

2 个答案:

答案 0 :(得分:6)

我不确定为什么会发生这种情况 - 最好看到控制器操作的代码负责将$model传递给查看。

至于检查是否已提取ActiveRecord - 通常empty()绰绰有余。

  • 如果不满足条件,静态方法findOne()将返回ActiveRecord或null的实例。
  • 静态方法findAll()返回ActiveRecord实例的数组,如果不满足条件则返回空数组。

在这两种情况下empty()如果已提取false则返回$model,否则返回true

答案 1 :(得分:0)

if ($model instanceof ProductFiles) {}

使用instanceof,您可以找到对象是否有记录。