3

すでに登録フォームを作成しました。私は3つの選択ボックスを持っています。日月年。私のデータベースには、「日付」形式の「誕生日」という列が 1 つあります。ここで、3 つすべてをまとめて、結果をデータベースに挿入します。

public function beforeSave($options = array()){
    $this->data['User']['Birthday'] = $this->data['User']['Year'] . '-' . $this->data['User']['Month'] .'-' . $this->data['User']['Day'];
    return true;
}

しかし、これは機能していません:(

このフィールド (日、月、年、誕生日) には検証ルールがありません。

これどうやってするの?

4

1 に答える 1

1

モデルで次のコードを試すことができます。

public function beforeSave($options = array()){
   if(!empty($this->data)){
       //pr($this->data);die;
       $this->data['User']['Birthday'] = date('Y-m-d', strtotime($this->data['User']['Year'] . '-' . $this->data['User']['Month'] .'-' . $this->data['User']['Day']));
      unset($this->data['User']['Year']);
      unset($this->data['User']['Month']);
      unset($this->data['User']['Day']);
   }
   return true;   
}

フォームで使用できる次のフォーム フィールドが必要です。

<?php echo $this->Form->create('User', array('url' => $this->params));
      echo $this->Form->input('Year', array('options' => $year_options, 'type' => 'select'));
      echo $this->Form->input('Month', array('options' => $month_options, 'type' => 'select'));
      echo $this->Form->input('Day', array('options' => $day_options, 'type' => 'select'));
于 2012-09-03T04:39:14.173 に答える