我有一个模型,$userModel。我想检查此模型的任何字段是否为空或null
目前我正在做一个大的如果声明。

if(!empty($userModel->name) && !empty($userModel->address) ... && !empty($userModel->email))
{
   // All fields have values
}

这样可以工作,但是如果以后我需要向模型添加另一个字段,那么我需要返回if并在那里添加另一个&&条件。
我怎么能一次办到呢?
是否有如下情况:$userModel::model()->areAllFieldsFilled();
额外信息:模型已经保存在数据库中,不需要用户输入。这只是我在检查一个特定模型的完整性,数据库中决不需要所有这些字段,只需要几个。像$userModel->bio这样的东西通常会被留下来。
我想避免检查5到10个字段。我不想一个巨人,如果必须保持时,模型改变。

最佳答案

php允许您iterate over an object's properties。使用empty()可以简化对每个属性的检查:

$allHaveValues = TRUE;
foreach ($userModel as $key => $value) {
    if (empty($value)) {
       $allHaveValues = FALSE;
       break;
    }
}

if ($allHaveValues) {
    // Do something...
}

10-06 16:05