[Zend Framework] Zend_Form: Zend_Form を使わない form

別件調査の副産物。

Zend_Formを使った方がメリットがありそう。

Zend_Form 2013-07-13 08-52-00

application/views/scripts/index/about.phtml
<form method="post" action="/index/about">
<dl>
    <dt>foo(必須チェック。小文字に変換。)</dt>
    <dd><input type="text" name="text"></dd>
    <dt>bar(日付形式チェック。)</dt>
    <dd><input type="date" name="date"></dd>
    <dt></dt>
    <dd><input type="submit"></dd>
</dl>
</form>
application/controllers/IndexController.php
    public function aboutAction()
    {
        // action body
        $errors = '';
        if ($this->getRequest()->isPost()) {
            $text = $this->getRequest()->getParam('text');
            $date = $this->getRequest()->getParam('date');
            $text = Zend_Filter::filterStatic($text, 'StringToLower');
            if (! Zend_Validate::is($text, 'NotEmpty')) {
                $errors .= "    <li>fooは、入力が必要です。</li>";
            }
            if (! Zend_Validate::is($date, 'Date')) {
                $errors .= "    <li>barは、正しい日付の形式ではありません</li>";
            }
        }
        if ($errors == '') {
            $data = array(
                'text' => $text,
                'date' => $date
            );
            Zend_Debug::dump($data);
        }
        $this->view->assign('errors', $errors);
    }