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
-~----------~----~----~----~------~----~------~--~---