0

任何人都请在 cakephp 中提供验证表单的示例,因为我有 cakephp 2.3.3 并且无法验证表单,无法识别我的模型 Usuario

模型usuario

    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

<?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();
    }

添加.ctp

<?php echo $this->Form->create('Usuario');?>
<fieldset>
    <legend>Añadir Nuevo Usuario</legend>
    <?php 
    echo $this->Form->input('nombre');
    echo $this->Form->input('apellido');
    echo $this->Form->input('email',array('label'=>'Correo Electrónico'));
    echo $this->Form->input('password',array('label'=>'Contraseña'));
    echo $this->Form->input('password2',array('label'=>'Repita Contraseña', 'type'=>'password'));
    echo $this->Form->input('paquete_id',array('label'=>'Plan','empty'=>'(Seleccione un Plan)'));
    echo $this->Form->input('modelo_id',array('label'=>'Modelo de Teléfono','empty'=>'(Seleccione un Modelo)'));
    echo $this->Form->input('nrotlf',array('label'=>'Numero de Teléfono'));
    echo $this->Form->input('grupo_id',array('empty'=>'(Seleccione un Rol)'));
    echo $this->Form->input('valido', array('checked'=>'true'));
    ?>
</fieldset>
<?php echo $this->Form->end('Enviar') ?>
<?php echo $this->Html->link('Mostrar Todos Los Usuarios',array('action'=>'index')); ?>

我已经看过文档,但我可以进行验证

4

1 回答 1

0

我解决了问题..是模型的名称并且没有重新识别验证

于 2013-08-21T15:41:25.807 回答