2017-10-20 1 views
1

양식에서 데이터를 전달해야합니다. 나는 년간 드롭 다운 뷰에서 선택할 수 있습니다 그들을FormHelper를 사용하여 날짜가 CakePHP 2.x에 null로 저장됩니다.

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--' 
)); 

위의 표시,하지만 난 제출 쳤을 때, 디버그 데이터가 비어 있음을 알려줍니다.

데이터베이스에서 데이터 형식은 date입니다.

컨트롤러는 다음과 같습니다

$this->validationErrors(array) 

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

답변

0

귀하의 문제가 데이터베이스에 date 필드에 불완전한 날짜를 저장하려고하는 것입니다, 그것은 잘못된 때문에 :

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'); 
    } 
} 

하는 오류입니다 ORM은 필드를 NULL로 설정합니다.

  • 변경 agno (ANO)을 고려, 그것은 처음부터 있었어야 아마 smallint에 데이터베이스의 필드 유형, year로 변환 :

    현재 두 가지 옵션이 있습니다.

  • 다른 두 분야 추가, 그래서 세 유효한 날짜 생산 :

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

    을하지만 아마 당신이 후에 무엇 없습니다.

+0

변화를 데이터베이스의 필드,하지만 당신은 여전히 ​​ – frtgu34

+0

두 번째 옵션, 나는 단어의 나방 데이터를 얻을 수 있지만, 잘 저장되어있는 경우, 대단히 감사합니다 무슨 일을 저장하지 않습니다 – frtgu34

관련 문제