validate機能
よくよく考えたら、検証機能をvalidateメソッド内で完結させる必要なんてないことに気づいた。validateメソッド内では検証のための設定だけ行って、その結果による処理はexecuteメソッド内で書けばいい。
<?php class Foo extends Moony_Action { var $name; var $furigana; function validate(&$v) { $v->setRequired($this->name, '名前は必須入力'); $v->setHiragana($this->furigana, 'ふりがなはひらがなで'); } function execute() { if ($this->hasError()) { // 検証エラーの場合の処理 $this->render('common/error.php'); return; } // 検証エラーがない場合の処理 $this->render(); } } ?>
これでrenderOnErrorなんてまどろっこしいメソッドは不要になる。