As regras de validação não estão sendo aplicadas na criação no cakePHP
-
26-12-2019 - |
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.
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;
}