雑記

2009年11月11日水曜日

CakePHP:FormHelper:年月日の値をGETで引き回してみる

全然ネタが無いわけでは無いですが、まぁメモ書き程度で・・・。 この間CakePHPのFormHelper使っててはまった点をばネタに 。

表題の通りなんだけど、CakePHPで検索フォームなんか作ったりしててはまった。

Viewはこんな感じです。
input('Model.date', array('name' => 'date[]', 'selected' => $date, 'dateFormat' => 'YMD', 'timeFormat' => 'NONE', 'monthNames' => false, 'minYear' => date('Y'), 'maxYear' => (date('Y')+1))); ?>

いやー、FormHelperはなんでもできちゃいますねぇ。

んでController
// Controllerには結局配列でわたってきちゃうので、元に戻してあげる
if (isset($this->params['url']['date'])) {
    if (is_array($this->params['url']['date'])) {
        $this->params['url']['date'] = date('Y-m-d', mktime(0,0,0, $this->params['url']['date'][1], $this->params['url']['date'][2], $this->params['url']['date'][0]);
    }
}
// そしてセット
$this->set('date', $this->params['url']['date']);

GETで渡ってくる形がスマートでは無いけど、結構コンパクトに書けちゃったので満足でした。

0 件のコメント: