Problema com o exemplo do blog

Olá a todos, resolvi depois de algum tempo usar esse fantástico Framework mas como todo principiante estou apanhando pra entender, pra exclarecer sou da velha guarda (php procedural na veia!) e estou aprendendo agora a usar PHP Orientado a Objeto, e vou dizer é dificil pra ca… mas é isso mesmo, temos que evoluir.

Então sem mais delongas, terminei de fazer o crud do exemplo e criei minhas classes na pasta model: user.php, comment.php… e todas as outras do exemplo do blog, daí veio a parte de cria a autenticação, seguir direitinho o exemplo até que ele me vem com essa:

The UserIdentity class is mainly used by the LoginForm class to authenticate a user based on the username and password input collected from the login page. The following code fragment shows how UserIdentity is used:




$identity=new UserIdentity($username,$password);

$identity->authenticate();

switch($identity->errorCode)

{

    case UserIdentity::ERROR_NONE:

        Yii::app()->user->login($identity);

        break;

    ......



Bem supus que essa chamada tem que ser colocada na classe logimForm que está na pasta model, daí substitui a function:




public function login()

	{

		if($this->_identity===null)

		{

			$this->_identity=new UserIdentity($this->username,$this->password);

			$this->_identity->authenticate();

		}

		if($this->_identity->errorCode===UserIdentity::ERROR_NONE)

		{

			$duration=$this->rememberMe ? 3600*24*30 : 0; // 30 days

			Yii::app()->user->login($this->_identity,$duration);

			return true;

		}

		else

			return false;

	}

}



Por isso:




public function login()

	{

		$_identity=new UserIdentity($username,$password);

		$_identity->authenticate();

			switch($_identity->errorCode)

			{

    		case UserIdentity::ERROR_NONE:

        	Yii::app()->user->login($_identity);

        	break;

		}

	}

}



Só que daí me retorna um Exceptiom : User and its behaviors do not have a method or closure named "validatePassword".

será que os nobres colegas podem me ajudar? agradeço desde já!

Cleiton, isso está errado:


$_identity=new UserIdentity($username,$password);

Na função, não vejo nenhuma variável com os nomes $username e $password… Deveria usar $this->username, password.

Happy coding.