Validation機能について・続き
Moony_Viewクラスの内部で持っているSmartyクラスのインスタンスを返すメソッドを用意してみた。これで強引にすればSmartyValidateの利用が可能になる。*1
class FooAction extends Moony_Action { function execute($context, $view) { $smarty = $view->getSmarty(); $request = $context->getRequest(); $params = $request->getAll(); if (is_empty($params)) { SmartyValidate::connect($smarty, true); // validationの内容を設定 SmartyValidate::register_validator(...); // フォーム表示 $view->setTemplate('FooForm.tpl'); } else { SmartyValidate::connect($smarty); if (SmartyValidate::is_valid($params)) { SmartyValidate::disconnect(); // 正常系の処理を記述 } else { // validateエラー、フォーム再表示 $view->assignAll($params); $view->setTemplate('FooForm.tpl'); } } } }
*1:Moony独自でValidation機能を持つ予定は今のところありません。