おっとsymfony修行日記の時間が空いてしまった。
もうすぐ完成なので頑張る。
商品のサイズと値段は当然数字だけしか受け付けないようにしたい。
そんなのもValidatorで簡単にできます。
symfonyに標準で用意されているsfNumberValidatorを使えばオッケーです。
apps/admin/modules/product/validate/update.ymlに以下のようにします。
width:
methods: [ post, get ]
required:
msg: "width is required."
sfNumberValidator:
min: 0
min_error: "over 0 allowed in width"
nan_error: "only number allowd in width."
英語が適当なのは気にしないでください。
そのうち日本語になおします。
これと同じ記述をwidthだけじゃなくて、height、depth、priceにもします。
これで、数字以外の文字が入力されていた場合と、マイナスの数字が入力されていた場合にエラーとすることができます。
ついでにURLにもValidatorをかけてしまいましょう。
やはり標準のsfUrlValidatorをつかえば簡単です。
url:
methods: [ post, get ]
sfUrlValidator:
url_error: "URL is invalid format."
こんな感じで、ほぼ全ての機能は実装できた。
ところどころ、コードは書いたけどこのブログには書いていないことがあるけどね。
PHPすらほとんど知らない状況でsymfonyを使い始めてみたけど、意外に困ることは少なかった。
一番困ったのは、sfOutputEscaperArrayDecoratorの一件かな。
それ以外は、Criteriaとかは慣れれば便利だし、AJAXも使えちゃったし、やっぱりフレームワークって便利だなって思いました。
おしまい。

