我有一个模型,$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...
}