2017-10-20 4 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です。

コントローラは次のとおりです。

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

errosです:

$this->validationErrors(array) 

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

答えて

0

あなたの問題は、データベースにdateフィールドに不完全な日付を保存しようとしているということであり、それは無効だからORMはフィールドをNULLに設定しています。

  • 変更agno(枚Año)を考慮し、それは最初からあったはずおそらく何であるsmallintに、データベース内のフィールドタイプ、yearに変換:

    あなたはここに2つのオプションがあります。

  • 他の2つのフィールドを追加し、その3は、有効な日付を生成します。

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

    しかし、おそらくこれはあなたが後にしているものではありません。

+0

データベースの変更フィールドを、あなたはまだ – frtgu34

+0

が、私は言葉で蛾のデータを得るが、よく保存されている場合は、どうもありがとうございました何を、2番目のオプションを働いていた、それを保存しません – frtgu34

関連する問題