2017-10-20 45 views
1

Je dois transmettre des données de mon formulaire. J'ai une liste déroulante avec les années à choisir dans la vue:Date d'enregistrement en tant que nulle dans CakePHP 2.x à l'aide de FormHelper

echo $this->Form->input('Zona.agno', array(
    'label'   => 'Año', 
    'type'   => 'year',  
    'minYear'  => date('Y') , 
    'maxYear'  => date('Y') + 4, 
    'orderYear'  => 'asc', 
    'dateFormat' => 'Y',   
    'empty' => '--Seleccione Año--' 
)); 

Les les affichages ci-dessus, mais quand je frappe soumettre, debug me dit que les données est vide.

Dans la base de données, le type de données est date.

Le contrôleur est:

if ($this->request->is('post')) { 
    $this->request->data('Zona.activo', 1); 
    if ($this->Zona->save($this->request->data)) { 
     $this->mensaje(__('La Zona ha sido creada.')); 
     $this->redirect(array('action' => 'index')); 
    } else { 
     $this->mensaje(__('La Zona no ha sido creada, por favor verifica los datos.'), 'error'); 
    } 
} 

Les erros est:

$this->validationErrors(array) 

Zona(array) 
agno(array) 
0 Debe ingresar año que aplica 

Répondre

0

Votre problème est que vous essayez d'enregistrer une date incomplète dans un champ date dans la base de données, et parce qu'il est invalide , l'ORM définit le champ sur NULL.

Vous avez deux options:

  • Modifier le type de champ dans la base de données smallint, ce qui est probablement ce qu'il aurait dû être dès le départ, compte tenu agno (año) se traduit year.

  • Ajouter deux autres champs, de sorte que les trois produisent une date valide:

    <? echo $this->Form->input('Contact.birthdate', array('type' => 'month')); ?>   
    <? echo $this->Form->input('Contact.birthdate', array('type' => 'day')); ?> 
    

    Mais sans doute ce n'est pas ce que vous recherchez.

+0

changement du champ dans la base de données, mais vous encore n'enregistrez pas – frtgu34

+0

travaillé la deuxième option, si je reçois les données de papillons nocturnes dans les mots, mais sont bien sauvé, je vous remercie beaucoup – frtgu34