Cake PHP 2.8.0没有验证

时间:2016-02-25 16:49:54

标签: validation cakephp-2.0

我在Workshops课程中有以下验证

public $validate = array(
    'programa'=> array( 
    'allowEmpty' => false,
    'required' => true
    ),
    'lugar'=> array(
    'allowEmpty' => false,
    'required' => true
    ),
    'fecha_inicio'=> array(
    'allowEmpty' => false,
    'required' => true
    ),
    'fecha_fin'=> array(
    'allowEmpty' => false,
    'required' => true
    ),
    'objetivo'=> array(
    'allowEmpty' => false,
    'required' => true
    ),
    'instructor'=> array(
    'allowEmpty' => false,
    'required' => true
    )
);

但是当我使用空字段保存数据库中创建记录时,验证没有完成。

这是我添加表单的代码

<h1>Agregar Taller</h1>
<?php
    echo $this->Form->create('Workshop');
    echo $this->Form->input('nombre');
    echo $this->Form->input('fecha_inicio',
        array(
           'label' => 'Fecha Inicio',
           'dateFormat' => 'DMYhm',
           'minYear' => date('Y') - 0,
           'maxYear' => date('Y') + 2,
           ));
   echo $this->Form->input('fecha_fin',
        array(
           'label' => 'Fecha fin',
           'dateFormat' => 'DMYhm',
           'minYear' => date('Y') - 0,
           'maxYear' => date('Y') + 2,
        ));
    echo $this->Form->input('caracteristica_tec21');
    echo $this->Form->input('programa');
    echo $this->Form->input('lugar');
    echo $this->Form->input('instructor');
    echo $this->Form->input('objetivo', array('rows' => '3'));
    echo $this->Form->end('Guardar Taller');
?>

这是我的控制器

<?php
    class WorkshopsController extends AppController {
        public $helpers = array('Html', 'Form');

        public function index() {
            $this->set('workshops',$this->Workshop->find('all'));
        }
        public function view($id = null){
            if(!$id){
                throw new NotFoundException(__('Taller inválido'));
            }
             $workshop = $this->Workshop->findById($id);
            if (!$workshop) {
                throw new NotFoundException(__('Taller inválido'));
            }
            $this->set('workshop', $workshop);
        }

         public function add() {
            if ($this->request->is('post')) {
                $this->Workshop->create();
                if ($this->Workshop->save($this->request->data)) {
                    $this->Flash->success(__('El taller se ha agregado'));
                    return $this->redirect(array('action' => 'index'));
                }else{
                    $this->Flash->error(__('No se ha podido agregar el taller'));
                }
            }
        }   
    }
?>

1 个答案:

答案 0 :(得分:1)

您希望在每个表单字段的验证中添加一个消息字段,这是视图文件中显示的消息。请参阅以下内容:

public $validate = array(
        'programa' => array(
            'allowEmpty' => false,
            'required' => true,
            'message' => "Please Enter the programa."
        ),
        'lugar' => array(
            'allowEmpty' => false,
            'required' => true,
            'message' => "Please Enter the lugar."
        ),
        'fecha_inicio' => array(
            'allowEmpty' => false,
            'required' => true,
            'message' => "Please Enter the fecha_inicio."
        ),
        'fecha_fin' => array(
            'allowEmpty' => false,
            'required' => true,
            'message' => "Please Enter the fecha_fin."
        ),
        'objetivo' => array(
            'allowEmpty' => false,
            'required' => true,
            'message' => "Please Enter the objetivo."
        ),
        'instructor' => array(
            'allowEmpty' => false,
            'required' => true,
            'message' => "Please Enter the instructor."
        )
    );

如果答案是正确的,请不要忘记将其标记为答案。