« Symfonyリンク集 | メイン | Google Mapsでの緯度経度を調べるツール »

テンプレートを共通化する

テンプレートを共通化する

 Symfonyではvalidateディレクトリ内にあるconfirm.ymlに定義されたルールが存在しないか、ルールに合致していれば、templateディレクトリ内の(アクション名)Success.phpが呼び出されるが、ルールに合致しない場合には(アクション名)Error.phpが呼び出される。

 入力内容のエラー処理は多くの場合入力前のテンプレートにエラーを付けて表示したりするケースが多いので、これでは同じ内容のテンプレートを2つ書かなければならず問題がある。

 そこでactionsディレクトリ内にあるaction.class.phpのhandleError(アクション名)関数をオーバーライドして戻り値を設定してあげるとテンプレートを共通化できる。

※Confirmアクションの例(ここではregistアクションからconfirmアクションに遷移するケースを考える)

public function handleErrorConfirm()
{
//通常テンプレートを返す
return sfView::SUCCESS;
}



なお、エラーメッセージはテンプレート中(今回の場合には、registSuccess.php)に
echo form_error('nickname');

などとすればよい。



トラックバック

トラックバックは本サイトの紹介(リンクがあれば可)があるものに限り受付いたします。このエントリーのトラックバックURLは以下のとおりです。

http://blog.development-network.net/mt/mt-tb.cgi/75

コメントを投稿