Php 删除Yii模型中的属性集

Php 删除Yii模型中的属性集,php,yii,ldap,Php,Yii,Ldap,我使用的是集成了LDAP数据库的Yii 1.x,当时我正在开发一种外部用户访问IT资源的功能:域(用于验证Windows/Linux外部用户)和Wi-fi(用于使用的访问),或者两者兼而有之 我遇到了一个场景,需要删除我之前在模型中设置的属性:出于安全原因,我使用所有数据填充模型,除了主标志(如sambaAcctFlags、disabledAccount和shadowExpire)之外,这些标志授予对资源的真正访问权:域中的SAMBA和Wi-fi中的RUCKUS 主要的问题是,当我创建一个模型记

我使用的是集成了LDAP数据库的Yii 1.x,当时我正在开发一种外部用户访问IT资源的功能:域(用于验证Windows/Linux外部用户)和Wi-fi(用于使用的访问),或者两者兼而有之

我遇到了一个场景,需要删除我之前在模型中设置的属性:出于安全原因,我使用所有数据填充模型,除了主标志(如sambaAcctFlags、disabledAccount和shadowExpire)之外,这些标志授予对资源的真正访问权:域中的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

我不能正确理解你的问题,反正你的句子不完整 如果要在数据库中保存以前定义的默认值,请将
unset
方法替换为
unsetAttributes()

在这种情况下:

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

已经纠正了,你能再试一次吗?另外,我使用的是Yii 1.x而不是Yii 2。你测试过我给你的解决方案吗?@DaniloDavanso,如果我没记错的话,
unsetAttributes
方法是针对Yii 1的!它经受了考验,但不起作用。在这行给了我一个错误500。说“foreach()的参数无效”;“
foreach
错误与我们这里的问题无关!因为我们没有在您的代码中更改进入foreach的数组。如果可以,请共享控制器或错误日志,因为我无法了解您的项目内部发生了什么。。。