php cakephp cakephp-2.0

Contraseña Confirmar Validación CakePHP



cakephp-2.0 (2)

Parece que su modelo no se carga correctamente y utiliza un modelo generado dinámicamente.

Comparar las contraseñas en 2.x no es más que comparar dos campos ya que cake ya no hace hash el pw automáticamente.

Puede confirmar que su método de validación se está ejecutando, parece que no es especialmente si cosas simples como no notEmpty no funcionan.

He buscado por todas partes, he probado todos los trucos en el libro, pero todavía no puedo obtener mi aplicación CakePHP para realizar una validación simple de Confirmación de contraseña. Intenté crear una regla de validación personalizada como esta:

''passwordequal'' => array(''rule'' => ''checkpasswords'' , ''message'' => ''Passwords Do Not Match'')

Luego definió ''contraseñas'' como esta:

public function checkpasswords(){ if(strcmp($this->data[''User''][''new_password''],$this->data[''User''][''confirm_password'']) == 0 ) { return true; } return false; }

''new_password'' y ''confirm_password'' son los campos de entrada de contraseña. Esto no funcionó. Luego probé uno en el que cifré el hash de ''confirm_password''. Eso tampoco funcionó. También tengo otras ''reglas'' que no están siendo validadas, como ''notempty'', que creo que es una de las reglas estándar de CakePHP. ¿Alguien puede ayudarme? Sé que esta pregunta se me ha hecho algunas veces, pero ninguna de esas soluciones me ha funcionado. La documentación de CakePHP tampoco ha ayudado mucho.


dos campos en archivo de vista

echo $this->Form->input(''password''); echo $this->Form->input(''repass'');

Archivo de modelo

<?php class Post extends AppModel { public $validate = array( ''repass'' => array( ''equaltofield'' => array( ''rule'' => array(''equaltofield'',''password''), ''message'' => ''Require the same value to password.'', //''allowEmpty'' => false, //''required'' => false, //''last'' => false, // Stop validation after this rule ''on'' => ''create'', // Limit validation to ''create'' or ''update'' operations ) ) ); function equaltofield($check,$otherfield) { //get name of field $fname = ''''; foreach ($check as $key => $value){ $fname = $key; break; } return $this->data[$this->name][$otherfield] === $this->data[$this->name][$fname]; } }?>