Problema al modificar un modelo en un método estático

Hola. Tengo un problema, tengo un modelo llamado UAnonimo el cual tiene un método estático que devuelve un entero. Lo primero que hace ese método es buscar un modelo que coincida con los parámetros que se le pasa, si es null se crea y sino se modifica una propiedad. Bien, el problema se encuentra cuando intento modificar esa propiedad. El código es el siguiente:




public static function obtenerIdAnonimo()

	{

		$ip = ip2long(CHttpRequest::getUserHostAddress());

		$anonimo = self::model()->findAllByAttributes(array('ip' => $ip));

		

		if ($anonimo == null)

		{

			$anonimo = new UAnonimo;

			$anonimo->ip = $ip;

			$anonimo->fecha_creacion = date('Y-m-d H:i:s');

			$anonimo->fecha_visita = date('Y-m-d H:i:s');

			$anonimo->save();

		}

		else

		{

			$anonimo->fecha_visita = date('Y-m-d H:i:s');

			$anonimo->save();

		}

		

		return $anonimo->id;

	}



Estoy utilizando Yii 1.1.12 sobre PHP 5.3.16. He revisado con un var_dump la existencia de esa propiedad y si que existe (con el mismo valor que la fila que devuelve la base de datos). He probado a cambiar “$anonimo = self::model()->findAllByAttributes(array(‘ip’ => $ip));” por “$anonimo = UAnonimo::model()->findAllByAttributes(array(‘ip’ => $ip))” sin resultado.

¿ Alguien sabe que es lo que esta ocurriendo aquí?

Holas,

Cual es el error que te aparece? ya verificaste si lo que te retorna


$anonimo = self::model()->findAllByAttributes(array('ip' => $ip));

es efectivamente una instancia de UAnonimo? creo que lo que retorna es un arreglo en cuyo caso puedes probar con


$anonimo[0]->fecha_visita = date('Y-m-d H:i:s');

Pero puedo estar equivocado prueba y comentas.

Gracias al poner la primera línea de código he descubierto el error: he usado el método findAllByAttributes en vez de findByAttributes de CActiveRecord.