Php 删除Yii模型中的属性集
我使用的是集成了LDAP数据库的Yii 1.x,当时我正在开发一种外部用户访问IT资源的功能:域(用于验证Windows/Linux外部用户)和Wi-fi(用于使用的访问),或者两者兼而有之 我遇到了一个场景,需要删除我之前在模型中设置的属性:出于安全原因,我使用所有数据填充模型,除了主标志(如sambaAcctFlags、disabledAccount和shadowExpire)之外,这些标志授予对资源的真正访问权:域中的SAMBA和Wi-fi中的RUCKUS 主要的问题是,当我创建一个模型记录时,我设置了属性disabledAccount,当该属性不存在时,授予对Wi-fi的访问权,但当其设置时,RUCKUS拒绝验证。现在,当用户未选中复选框时,我无法从模型中删除该值,因此我尝试使用Php 删除Yii模型中的属性集,php,yii,ldap,Php,Yii,Ldap,我使用的是集成了LDAP数据库的Yii 1.x,当时我正在开发一种外部用户访问IT资源的功能:域(用于验证Windows/Linux外部用户)和Wi-fi(用于使用的访问),或者两者兼而有之 我遇到了一个场景,需要删除我之前在模型中设置的属性:出于安全原因,我使用所有数据填充模型,除了主标志(如sambaAcctFlags、disabledAccount和shadowExpire)之外,这些标志授予对资源的真正访问权:域中的SAMBA和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的数组。如果可以,请共享控制器或错误日志,因为我无法了解您的项目内部发生了什么。。。