Consulta sobre codificación

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'));


	}




Usa un scope por defecto en el modelo, como en el ejemplo siguiente :

public function defaultScope()

{

return array(

 'condition'=>"estado != 0"

);

}

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

http://www.yiiframework.com/doc/api/1.1/CActiveRecord#beforeDelete-detail

Saludos

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();

);

Un saludo.

Muchas gracias, pero ya tengo listo el metodo para eliminar, lo que falta es que no se muestre, ni se pueda utilizar, saludos.

Probaste lo que te comente al principio del hilo ?¿


public function defaultScope()

{

return array(

'condition'=>"estado != 0"

);

} 

La verdad es que no sé como usarlo, no encontré mucha información.

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.

Un saludo.

Muchas gracias pana 1990, me sirvió lo que enviaste, solo modifique la función, la tuya me dio error




	public function defaultScope(){

		return array('condition'=>"estado != '0'");

	}