Ethna_ActionForm::getHiddenVars() というメソッドを用いると、 hidden タグを使って次の画面にフォーム値を渡すことができるが、 これを hidden タグでなくセッションを使って行えるようにする。
例として、~/Ethna の下に作成した sample というプロジェクトで 利用する場合の手順を示す。
Revulo_ActionForm.php をダウンロードし、app ディレクトリにコピー。
$ wget http://www.revulo.com/download/Revulo_ActionForm.tar.gz $ tar xvfz Revulo_ActionForm.tar.gz $ cp Revulo_ActionForm.php ~/Ethna/sample/app/
app/Sample_Controller.php に以下の設定を追加。
include_once('Revulo_ActionForm.php');
app/Sample_Controller.php の $class の設定を以下のように変更。
var $class = array( …… 'form' => 'Revulo_ActionForm', …… );
以下のファイルの extends Ethna_ActionForm となっている箇所を、 extends Revulo_ActionForm に変更。
セッションになるべくゴミが残らないようにするために、 コントローラクラスの _setDefaultTemplateEngine() メソッドに以下のコードを追加する。
$this->action_form->clearForm();
そして、セッションへの書き込み、読み込みは、 以下のように手動で行う。
ビュークラスの preforward() メソッドの最後に、以下のように記述。
$this->af->saveForm();
アクションクラスの prepare() メソッドの先頭に、以下のように記述。
$this->af->restoreForm();
数画面連続でフォーム値を受け渡していく場合は、 restoreForm() で読み込んで saveForm() で保存という処理を、 各画面ごとに繰り返し行う。