表单验证cakephp示例
请大家举一个cakephp中验证表单的例子,因为我有cakephp 2.3.3,无法验证表单,无法识别我的模型Usuario usuario车型表单验证cakephp示例,php,forms,validation,cakephp,cakephp-2.3,Php,Forms,Validation,Cakephp,Cakephp 2.3,请大家举一个cakephp中验证表单的例子,因为我有cakephp 2.3.3,无法验证表单,无法识别我的模型Usuario usuario车型 public function beforeSave($options = array()) { if (isset($this->data[$this->alias]['password'])) { $this->data[$this->alias]['password'] =
public function beforeSave($options = array()) {
if (isset($this->data[$this->alias]['password'])) {
$this->data[$this->alias]['password'] = AuthComponent::password($this->data[$this->alias]['password']);
}
return true;
};
public $validate = array(
'nombre' => array(
'sololetras' =>array(
'rule' => '/^[a-z]$/i',
'message' => 'Solo se Permite Letras en este Campo'
),
'required'=> true,
'allowEmpty' => false,
),
'apellido' => array(
'allowEmpty' => false,
'required' => true,
),
'email' => array(
'email' => array(
'rule' => 'email',
'message' => 'El nombre de usuario debe ser una dirección de email válida.'
),
'allowEmpty' => false,
'required' => true,
),
'nrotlf' => array(
'rule' => array('phone', null, 'us')
)
);
}
?>
UsuarioController
public function beforeSave($options = array()) {
if (isset($this->data[$this->alias]['password'])) {
$this->data[$this->alias]['password'] = AuthComponent::password($this->data[$this->alias]['password']);
}
return true;
};
public $validate = array(
'nombre' => array(
'sololetras' =>array(
'rule' => '/^[a-z]$/i',
'message' => 'Solo se Permite Letras en este Campo'
),
'required'=> true,
'allowEmpty' => false,
),
'apellido' => array(
'allowEmpty' => false,
'required' => true,
),
'email' => array(
'email' => array(
'rule' => 'email',
'message' => 'El nombre de usuario debe ser una dirección de email válida.'
),
'allowEmpty' => false,
'required' => true,
),
'nrotlf' => array(
'rule' => array('phone', null, 'us')
)
);
}
?>
<?php
class UsuariosController extends AppController{
var $name = 'Usuarios';
var $helpers = array('Html','Form');
//var $scaffold;
function cargapaq(){ //Carga la lista de la tabla Paquete
$this->loadModel('Paquete');
$paquetes = $this->Paquete->find('list', array('fields'=>'Paquete.id, Paquete.nombre'));
//debug($paquetes);
$this->set(compact('paquetes'));
}
function cargamod(){ //Carga la lista de la tabla Modelo
$this->loadModel('Modelo');
$modelos = $this->Modelo->find('list', array('fields'=>'Modelo.id, Modelo.nombre'));
//debug($modelos);
$this->set(compact('modelos'));
}
function index(){
$usuarios = $this->Usuario->find('all',array(
'fields'=>array(
'Usuario.nombre',
'Usuario.apellido',
'Usuario.email',
'Usuario.password',
'Usuario.grupo_id',
'Usuario.paquete_id',
'Usuario.modelo_id',
'Usuario.nrotlf',
'Usuario.valido',
'Usuario.id'),
'conditions'=>'Usuario.valido=true',
'order'=>'Usuario.apellido ASC')
);
$this->set('usuarios',$usuarios);
###Carga del nombre de los modelos de telefonos para cada modelo en el index.ctp####
$idmod = Hash::extract($usuarios,'{n}.Usuario.modelo_id');
$array=array();
$modelos=array();
$this->loadModel('Modelo');
for ($i=0; $i < count($idmod); $i++) {
$busqueda = $this->Modelo->find('all', array('fields'=>'Modelo.nombre', 'conditions'=>"Modelo.id=$idmod[$i]"));
array_push($modelos, $busqueda['0']);
}
$this->set('modelos',$modelos);
#######Fin de La Carga#########
###Carga del nombre de los planes de telefonos para cada modelo en el index.ctp####
$idpaq = Hash::extract($usuarios,'{n}.Usuario.paquete_id');
$array=array();
$paquetes=array();
$this->loadModel('Paquete');
for ($i=0; $i < count($idpaq); $i++) {
$busqueda = $this->Paquete->find('all', array('fields'=>'Paquete.nombre', 'conditions'=>"Paquete.id=$idpaq[$i]"));
array_push($paquetes, $busqueda['0']);
}
$this->set('paquetes',$paquetes);
#######Fin de La Carga#########
}
function add(){
if ($this->request->is('post')){
//$this->Usuario->create();
if ($this->Usuario->save($this->request->data)){
$this->Session->SetFlash('Usuario Nuevo Creado');
$this->redirect(array('action'=>'index'),null,true);
}else{
$this->Session->SetFlash('No se ha Agregado el Usuario, intente de Nuevo');
}
}
$this->cargapaq();
$this->cargamod();
}
新乌萨里奥
我已经看过文档,但我可以进行验证,我解决了问题。。是模型的名称,没有识别验证当你说“不起作用”时,它会给你一个错误,还是不会验证并按原样保存到数据库?我尝试了“调试($this->Usuario->validationErrors)”,并在你的控制器中返回一个空数组和
调试($this->Usuario->invalidFields())
?相同的空数组?作为一个说西班牙语的人,我有一个建议:试着从验证文本中删除所有口音,因为某些原因,如果你有类似“dirección”的东西,验证就不起作用了。。。从未真正调查过原因……我会试试,稍后再评论