{"width":"100%","version":"1.0","blog_title":"Practice of Programming","description":"\u30c9\u30ad\u30e5\u30e1\u30f3\u30c8\u306b\u66f8\u3044\u3066\u306a\u3044\u3093\u3067\u3059\u304c\u3001 action1: param1: - self_rule: HOGE message: 'param1 is invalid HOGE' \u3068\u66f8\u3044\u3066\u3001\u30b3\u30fc\u30c9\u3067\u3001 if (not some_check()) { $c->form->set_invalid('param1', 'HOGE'); } \u3068\u3084\u308b\u3068\u3001$c->form_messages('param1') \u3067\u3001\u5b9a\u7fa9\u3057\u305f\u30e1\u30c3\u30bb\u30fc\u30b8\u304c\u53d6\u308c\u308b\u3068\u3044\u3046\u3053\u3068\u306a\u3093\u3067\u3059\u306d\u3002 \u3053\u308c\u306f\u3001\u4fbf\u5229\u3067\u3059\u306d\u3002","type":"rich","height":"190","title":"CP::FormValidator::Simple::Auto \u306e self_rule","html":"<iframe src=\"https://hatenablog-parts.com/embed?url=https%3A%2F%2Fktat.hatenadiary.jp%2Fentry%2F20080117%2F1200500258\" title=\"CP::FormValidator::Simple::Auto \u306e self_rule - Practice of Programming\" class=\"embed-card embed-blogcard\" scrolling=\"no\" frameborder=\"0\" style=\"display: block; width: 100%; height: 190px; max-width: 500px; margin: 10px 0px;\"></iframe>","author_name":"ktat","url":"https://ktat.hatenadiary.jp/entry/20080117/1200500258","blog_url":"https://ktat.hatenadiary.jp/","provider_url":"https://hatena.blog","categories":["Perl","Catalyst"],"published":"2008-01-17 01:17:38","provider_name":"Hatena Blog","image_url":null,"author_url":"https://blog.hatena.ne.jp/ktat/"}