読者です 読者をやめる 読者になる 読者になる
一人もくもく会 α verでサービス開始しました。

フォームから配列で複数アイテムを使う

CakePHP1.2ではフォームの作成にはhtmlヘルパーを使わず、
formヘルパーを使うようになった。
使い方は以下のような感じ。

< ?php
$form->create(’User’);
$form->input(’name’);
$form->end(’Submit’);
?>

1.1から移行した時はなんだか良く分からないなあと思うけど、
使っていくうちに$form->inputが色々出来ることに気付く。
誕生日なんかも$form->input(’birthday’, array(’type’ => ‘date’));
みたいな感じで出来るので面白い。
月が英語で出るのがやっかいだが。
例えば以下のようなデータ構造の場合。
User

  • Item
  • Item
  • Item

このようにItemが複数ある場合もフォームで作れる。
もしかしたら1.2betaバージョン以降じゃないと駄目かもしれないが、
以下のように作成できる。

< ?php
$form->create(’User’);
$form->input(’name’);
$form->input(’Item/0/name’);
$form->input(’Item/1/name’);
$form->input(’Item/2/name’);
?>

これで
$this->data[’Item’]に複数のItemが入る。
色々出来るんだなあと思った。
後は、app_model.phpにそれようのバリデーション関数や
保存関数を加えておけばもっと便利に。

function insertList($rows) {
  foreach ($rows as $row) {
    $this->create($row);
    if (!$this->save()) return false;
  }
  return true;
}

みたいな感じ。