アクションフォームに値を格納するメソッドは以下の3種類。
メソッド名 | テンプレートでの値の取得方法 | 値のエスケープ処理 |
set() | {$form.〜} | される |
setApp() | {$app.〜} | される |
setAppNE() | {$app_ne.〜} | されない |
これらをどう使い分ければよいのか? 一言で言うと、フォーム値の場合は set()、 表示するだけの場合は setApp() という感じだと思うが、 いくつかの具体例を箇条書きにしてみる。
フォーム画面でデータの編集をするような場合、 Validation に引っかかり再びその画面に戻ってくる場合を考えると、 テンプレート中では {$form.〜} として値を参照しなければならない。 よって、初期値をアクションフォームに渡す際にも、 それに合わせて set() を使う。
例えば、何月なのかを選んでもらうために、
$months = range(1, 12); $this->af->setApp('months', $months);
のような配列をセットする場合。 フォームだから set() を使うのかと一瞬考えたりしたが、 値を表示するだけで書き換えるわけではないので、 setApp() を使うのが適切。
例えば、Topic Path を表示するための HTML を PHP スクリプト中で組み立てておいて、 それをテンプレートに渡す場合とか。