Saludos a Todos…
1) Tengo una TABLA llamada AdminUsuario que tiene tres campos ( username, contrasena y edad ),
en la VISTA tengo un formulario, que despliega un listado con varios checkbox con un foreach…se trata de ir seleccionando de la lista los registros a Eliminar…
con el siguiente CODIGO:
<?php echo CHtml::beginForm(CHtml::normalizeUrl(array(‘adminUsuario/editar’)), ‘post’, array(‘id’ => ‘formListado’)); ?>
<?php echo CHtml::hiddenField(‘UsuarioForm[elemento]’, ‘’, array()); ?>
<table style=‘border: 1px solid #FF0000;’>
<tr style='background-color: pink; text-align: center; font-weight: bold;'>
<td>Marcas</td>
<td>Username</td>
<td>Edad</td>
</tr>
<?php $i = 0; ?>
<?php foreach($usuarios as $usuario): ?>
<tr>
<td style='text-align: center;'><?= CHtml::checkBox("UsuarioForm[marca][{$i}]", false, array('value' => $usuario['username'])); ?></td>
<td><?= $usuario['username']; ?></td>
<td style='text-align: center;'><?= $usuario['edad']; ?></td>
</tr>
<?php $i++; ?>
<?php endforeach; ?>
</table>
<br />
<?= CHtml::submitButton(‘Remover’, array(
'onClick' => "document.getElementById('formListado').action = '" . CHtml::normalizeUrl(array('adminUsuario/remover')) . "'"
)); ?>
<?php echo CHtml::endForm(); ?>
2) EN EL CONTROLADOR LA SIGUIENTE FUNCION CON EL SIGUIENTE CODIGO:
[b]public function actionRemover()
{[/b]
if(!isset($_POST['UsuarioForm']))
{
Yii::app() -> request -> redirect(CHtml::normalizeUrl(array('AdminUsuario/index')));
exit;
}
$usuarios = array_values($_POST['UsuarioForm']['marca']);
$total = 0;
$borrados = 0;
foreach($usuarios as $username)
{
$usuario = new AdminUsuario();
$usuario -> username = $username;
if($usuario -> remover())
$borrados ++;
$total ++;
}
Yii::app() -> user -> setFlash('mensajeEstado', "Se removieron {$borrados} de {$total} registros.");
Yii::app() -> request -> redirect(CHtml::normalizeUrl(array('AdminUsuario/index')));
exit;
[b]}[/b]
3) Y EN EL MODELO LA FUNCION remover con el CODIGO Siguiente:
[b]public function remover()
{[/b]
$sql = "DELETE FROM AdminUsuario WHERE username=:username";
$comando = Yii::app()->db->createCommand($sql);
$comando->bindParam(':username',$this->username, PDO::PARAM_STR, 16);
$control=$comando->execute();
return ($control > 0);
}
Pero arroja el siguiente error… Indirect modification of overloaded property AdminUsuario::$username has no effect
Estoy tratando de solucionar este error que arroja Yii, si alguien por favor puede ayudar con este tema…
No se que parte del código está mal o si es un bug de Yii o PHP…
Adjunto un archivo de imagen…
Gracias por su ayuda!..