Pergunta

O problema que estou tendo é que as regras de validação estão sendo acionadas na edição, mas nenhuma delas é acionada na criação.Aqui estão algumas das regras de validação, mesmo que o problema provavelmente não esteja aqui:

var $validate = array(

        'date' => array(
            'notempty' => array(
                'rule' => array('notEmpty'),
                'message' => 'Choose a date'
            )
            ),

        'minutes' => array(
            'rule'=>'minutes',
            'message' => 'Minutes cannot exceed 60',
            'allowEmpty' => true
        )

E aqui estão os formulários (editar e adicionar):

<?php echo $this->Form->create('Event');?>

    <?php echo $this->Form->input('date', array('class'=>'datepicker', 'type'=>'text', 'label'=>__('Date*')));?>

<?php echo $this->Form->end(__('Save edit'));?>



<?php echo $this->Form->create('Event');?>      

    <?php   echo $this->Form->input('date', array('class'=>'datepicker', 'type'=>'text', 'value'=>$date, 'label'=>__('Date*'))); ?>

<?php echo $this->Form->end(__('Save'));?>

E a validação não está desabilitada em nenhuma função do controlador, pois eles são iguais em todo o aplicativo e funcionam perfeitamente com todos os outros modelos.Acho que tem que ser algo simples, mas simplesmente não consigo fazer funcionar.

Qualquer ajuda é muito apreciada.

Foi útil?

Solução

Experimente este código em seu arquivo EventsController.php.

Na sua função add():

Código:

if ($this->request->is('post')) {

  $this->Event->set($this->request->data);

  if($this->Event->validates()) {

      if ($this->Event->save($this->request->data)) {

         // Data saved and validated

      }

  }

}

Espero que este código ajude você..

Obrigado!!

Outras dicas

você só precisa usar regras de validação em ambas as ações na tabela do modelo separadamente.

public function validationadd(Validator $validator){
    ->notEmpty('first_name');
    return $validator;
}
public function validationedit(Validator $validator){
    ->notEmpty('first_name');
    return $validator;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top