删除Yii模型中的属性集

时间:2018-07-31 21:22:42

标签: php yii ldap

我使用与LDAP数据库集成的Yii 1.x,并在开发用于外部用户访问IT资源的功能时:域(用于验证Windows / Linux外部用户)和Wi-fi(使用权限),或两者兼有。

我遇到了需要删除我先前在模型中设置的属性的情况:出于安全原因,我在模型中填充了所有数据,这些数据均应包含主要标志,例如 sambaAcctFlags,disabledAccount和shadowExpire 谁可以真正访问资源:Domain中的SAMBA和Wi-fi中的RUCKUS。

主要问题是,当我创建模型记录时,我设置了属性 disabledAccount -当该属性不存在时,它授予对Wi-fi的访问权限,但是当其设置时,RUCKUS拒绝身份验证-现在我当用户未选中复选框时,无法从模型中删除此值,因此我尝试使用unset($model->disabledAccount),但此方法不起作用。我已经看到一些建议,将变量替换为空值,但使用我的LDAP Yii扩展名,在保存disabledAccount属性时,这将引发LDAP错误。

任何光能做什么?

                $model->shadowexpire = time();
                $model->sambaAcctFlags = '[UD]';
                $model->disabledaccount = date('YmdHis\Z');

                foreach ($_POST['checkbox_acessos'] as $access ) {
                    switch ($access) {
                        case 'C': // Verify if the user has set Domain Access to user
                            $model->sambaAcctFlags = '[U]';   //Change flag from Deactivate to Activate
                            break;
                        case 'W': // Verify if the user has set Wi-fi to user
                            unset($model->disabledaccount); //this is the main problem**
                            echo "Wi-fi Granted!";
                            break;           
                    }
                }

                $model->shadowExpire = strtotime($validade->format('d-m-Y H:i:s'));
                // Date when Expire Unix based systems access

1 个答案:

答案 0 :(得分:0)

无论如何,我无法正确解决您的问题,您的句子不完整 如果要在数据库中保存之前定义的默认值,请用unset替换unsetAttributes()方法。

在这种情况下:

$model->unsetAttributes(['disabledAccount']);