CakePHPの月選択のタグを表示する

FormHelper::month() を利用するのだが、CakePHP 1.2.0.7125 RC1では、英語表記にするかどうかを "monthNames" オプションで指定できる。

<?php echo $form->month('User.birthday', 'now', array('monthNames' => false)) ?>

で、数字表記に変更。・・・もしくは、/cake/libs/view/helper/form.php

<?php
    // (中略)
    $defaults = array('monthNames' => true);

を false にすると、毎回指定しなくても良さそう。デフォルト値を外部から設定する方法はないみたい。

CakePHP で複数チェックボックス

ビューで以下の様にすると面白いことになった。

      <?php echo $form->checkbox('User.sex.1')?>男性
      <?php echo $form->checkbox('User.sex.2')?>女性

コントローラーでは、$this->data['User']['sex'] が配列になる。var_dump($this->data['User']['sex'] をとると、

array(2) {
  [1]=>
  string(1) "0"
  [2]=>
  string(1) "1"
}

ただし、そのまま $this->User->save() を実行すると悲しい結果になってしまう。モデル側(もしくはコントローラ)でこの状態をカバーする必要がある。ビヘイビアとかいう機能が使えそう。