2016-05-25 5 views
0

私はこの問題を抱えています。私はcakephpアプリケーションで日付フィールドの選択値を保存していません。それはあなたが "2016-02-02"を選択したとしても "1970-01-01"を保存し続けました。何が間違っていますか?Cakephpが日付フィールドの選択された値を保存していません

これは私のコードは、コントローラ

$this->request->data['Jobapp']['dayofbirth']= date('Y-m-d H:i:s', strtotime($this->request->data['Jobapp']['dayofbirth'])); 
$this->request->data['Jobapp']['dateofissue']= date('Y-m-d H:i:s', strtotime($this->request->data['Jobapp']['dateofissue'])); 
$this->request->data['Jobapp']['expirydate']= date('Y-m-d H:i:s', strtotime($this->request->data['Jobapp']['expirydate'])); 

であり、これは問題になる可能性がどのようなビューファイル

<td><?php echo $this->Form->input('dayofbirth',array('label'=>'Date of Birth','type'=>'date','minYear'=>date('Y') - 90))?> 

内のフィールドの一つですか?

'dayofbirth' => array(
     'day' => '12', 
     'month' => '08', 
     'year' => '1993' 
    ), 
    'maritalstatus' => 'emtpy', 
    'nationality' => 'empty', 
    'complexion' => '', 
    'passportnumber' => '', 
    'dateofissue' => array(
     'month' => '05', 
     'day' => '25', 
     'year' => '2016' 
    ), 
    'placeofissue' => '', 
    'expirydate' => array(
     'month' => '05', 
     'day' => '25', 
     'year' => '2016' 
    ), 
+0

追加アクションを保存する前にデバッグしますか? – skywalker

+0

@skywalker、私はそれをデバッグしましたが、私はまだデバッグの値として間違った値を取得します。以下の 'dayofbirth' => '1970-01-01 01:00:00'、 \t \t 'maritalstatus' = > 'emtpy'、 \t \t '国籍' => '空'、 \t \t '顔色' => ''、 \t \t 'passportnumber' => ''、 \t \t 'dateofissue' =>「1970- 01-01 01:00:00 '、 \t \t' placeofissue '=>' '、 \t \t' expirydate '=>' 1970-01-01 01:00:00 '、' –

+0

ご質問にコントローラのアクションコードを示してください。 – skywalker

答えて

0

日付フィールドは配列です。試してみてください:あなたは日付フィールドを変更する必要はありません。他のフィールド

0

$this->request->data['Jobapp']['dayofbirth']= date('Y-m-d H:i:s', strtotime(implode('-',$this->request->data['Jobapp']['dayofbirth']))); 

同じ、CakePHPはそれの世話をします。したがって、これらの行を取り除くことができます:

0

jquery uiの助けを借りて、コントローラーで日付フィールドの変更を避けることができます。あなたのビューで

行い、以下の変更、

<!-- Load the jquery & jquery ui library --> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> 
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css"> 

<script> 
    $(function(){ 
     $(".datepicker").datepicker({dateFormat:"yyyy-mm-dd"}); 
    }); 
</script> 
<?php echo $this->Form->input('dayofbirth',['class'=>'datepicker']); ?> 
<?php echo $this->Form->input('dateofissue',['class'=>'datepicker']); ?> 
<?php echo $this->Form->input('expirydate',['class'=>'datepicker']); ?> 

入力データを処理して、コントローラのコードを削除してください。正しい形式で日付を挿入できるはずです。

関連する問題