Hola comunidad, tengo una consulta sobre codificación, no llevo mucho tiempo con yii y php si que perdón si es muy boba mi consulta.
Al eliminar un registro no quiero que desaparezca de la bd, si no cambiar su estado. Éso está listo, pero luego quiero que ese registro no pueda ser visto ni tampoco poder ser utilizado, ¿Qué debo modificar para que no se pueda ver?
pd.- Es una de una tabla cuenta, que es utilizada para el login, si es eliminado tampoco podría logearse
Este es mi delete:
public function actionDelete($id)
{
$model=$this->loadModel($id);//->delete();
$model->estado="0";
$model->save();
if(!isset($_GET['ajax']))
$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
}
Aunado a lo que te dice pana1990, te recomendaria usar beforeDelete() para colocar el estado de "borrado", asi no tienes que hacer ese código en cada action que necesites elminar
Eso no te valdría porque activerecord te borraría el registro después del beforeDelete, lo correcto sería sobreescribir el método delete en el modelo, para modificar así el comportamiento.
Por ejemplo :
public function delete()
{
self.estado = 0;
return save();
);
Si usas yii1.x tienes aquí la infromación : scopes
Si usas yii2 : scopes
El ejemplo que te puse sería en yii1.x, básicamente si pones dicha función en tu modelo cada vez que hagas una consulta se va a ejecutar esa condición que has puesto por defecto.