mrBaleia 0 Denunciar post Postado Maio 18, 2011 Ola. Eu tenho uma tabela users que tem os campos login e password. Meu objetivo é criar um view com uma form que tenha os campos login, password e confirm password usando o form helper. Quando eu faço assim: <?php echo $this->Form->create('User', array('action'=>'changeSenha'); ?> <?php echo $this->Form->input('User.login'); ?> <?php echo $this->Form->create('User.password'); ?> <?php echo $this->Form->create('confirmPassword'); ?> <?php echo $this->Form->end(); ?> ele manda os dados pro controler em $this->data, mas como não existe confirmPassword na minha tabela e esse codigo fica invalido, a minha duvida é se é possivel enviar um dado dessa forma? Eu acesso $this->data['User']['login'] e $this->data['User']['password']. Os exemplos que eu vi de cofirm password são com um field confirmPassword na tabela. Quero fazer isso sem ter que adicionar o field Compartilhar este post Link para o post Compartilhar em outros sites
m@dDog 5 Denunciar post Postado Maio 18, 2011 Você pode fazer assim: http://www.littlehart.net/atthekeyboard/2008/01/22/simple-user-registration-in-cakephp-12-part-ii Ou assim: Na View: <?php echo $this->Form->create('User', array('action' => 'add'); ?> echo $this->Form->input('login'); ?> echo $this->Form->input('password'); ?> echo $this->Form->input('confirm_password'); ?> echo $this->Form->end(); ?> Como o nome do Form é User, não precisa adicionar no field (você também pode trocar para Usuario). No Model User: public $validate = array( 'senha' => array( 'valorCampoIgual' => array( 'rule' => array('valorCampoIgual', 'confirma'), 'message' => 'A senha não foi confirmada corretamente' ) ) ) public function valorCampoIgual($field=array(), $compare_field=null){ $define = array_keys($field); $v1 = $this->data[$this->name][$define[0]]; $v2 = $this->data[$this->name][$compare_field]; return ($v1 === $v2); } No Controller: if (!empty($this->data)) { $this->data['User']['confirm_password'] = $this->Auth->password($this->data['User']['confirm_password']); $this->User->set($this->data); $validate = $this->User->validates(); if ($validate) { // Validou } else { // Não validou } } Compartilhar este post Link para o post Compartilhar em outros sites
mrBaleia 0 Denunciar post Postado Maio 19, 2011 Opa, funcionou!! Achei melhor da maneira que você fez. Consegui aproveita a mesma função para fazer o confirmar Email. Vlw pela ajuda m@dDog!! Compartilhar este post Link para o post Compartilhar em outros sites
Tylër 0 Denunciar post Postado Maio 21, 2011 Vou usar este tópico como referência para uma dúvida parecida! ;) Compartilhar este post Link para o post Compartilhar em outros sites