Outro dia, eu estava fazendo um formulário de cadastro de usuários. E
precisei verificar a senha com o outro campo de confirmação. Mas, para o
controlador não ficar cheio de código, pesquisei na internet e achei a
possíbilidade de fazer um função em AppModel, assim poderá servir para todos
os modelos.

Meu arquivo AppModel ficou assim:

<?php

class AppModel extends Model {

    var $name = "App";

    function equalTo( $field=array(), $compare_field=null ){

        foreach( $field as $key => $value ){
            $v1 = $value;
            $v2 = $this->data[$this->name][ $compare_field ];

            if($v1 !== $v2) {
                return false;
            } else {
                continue;
            }
        }
        return true;
    }
}

?>

Meu modelo de Usuário ficou assim:

class Usuario extends AppModel{
    var $name = 'Usuario';

    var $validate  = array(
        "nome" => array(
            "required" => array("rule"=>VALID_NOT_EMPTY, "message" => "Entre
com o nome."),
            "minLength"=> array("rule" => array("minLength", 3), "message"
=> "Minimo: 3 caracteres."),
            ""=>array("rule"=>"#^[[:alpha:] à-ÿÀ-Ý]+\$#", "message" =>
"Caracteres inválidos"),
            "em branco"=>array("rule"=>VALID_NOT_EMPTY, "message" => "O nome
deve ser informado.")
        ),
        "password" => array(
            "equal" => array("rule" => array("equalTo", "password2"),
"message" => "Senhas distintas."),
            "não vazio"=>array("rule" => VALID_NOT_EMPTY, "message" => "A
senha deve ser informada.")
        ),
        "email"=>array(
            "email"=>array("rule" => VALID_EMAIL, "message" => "Email
Inválido"),
            "embranco"=>array("rule" => VALID_NOT_EMPTY, "message" => "O
email deve ser informado.")
        ),
        "login"=>array(
            "login unico"=>array("rule"=>array("isUnique","login"),
"message" => "Já existe um usuário com este login."),
            "semespaco"=>array("rule"=>"#^([a-zA-Z0-9])+\$#", "message" =>
"Apenas letras, numeros, . , _ e -."),
            "vazio"=>array("rule"=>VALID_NOT_EMPTY, "message" => "O login
deve ser informado.")
        )

    );

?>


Vocês podem presta atenção onde tem:

"password" => array(
            "equal" => array("rule" => array("equalTo", "password2"),
"message" => "Senhas distintas."),
            "não vazio"=>array("rule" => VALID_NOT_EMPTY, "message" => "A
senha deve ser informada.")
        ),


Achei bem elegante desse modo, concerteza bem melhor do que pelo
controlador(controller).

Espero que tenha compartilhado uma informação importante e construtiva com
vocês.

Alguém mais experiênte sabe dizer se ainda tem uma forma melhor!?

Abs,
Sadjow Medeiros Leão.

--~--~---------~--~----~------------~-------~--~----~
Recebeu esta mensagem porque está inscrito em Grupo "Cake PHP Português" do 
Grupos Google.
 Para enviar mensagens para este grupo, envie um email para 
[email protected]
 Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
 Para mais opções, visite este grupo em 
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~----------~----~----~----~------~----~------~--~---

Responder a