cakeplusを細々と開発していますが、嬉しいことにk1LoWさんにgithub経由でpullリクエストを貰ったので、それをマージしてみました。今回追加したルールは全角のbetween、ひらがなのみ、全角のみかをチェックするの3つです。 今回はgitで一連の操作をしたので、その流れをまとめました。 CakePlusの各機能に関しては、下記の記事の中に書いてあるのでご覧下さい。 http://d.hatena.ne.jp/cakephper/20090909/1252461412 興味を持った方は、ソースコードに使い方などの説明がたくさん書いてあるので、見て頂けると嬉しいです。 http://github.com/ichikaway/cakeplus マージの前に、とりあえず、現行のコードを初期のバージョンとしてcakeplus-0.1というタグを付けて、push。githubのall t
CakePHP1.2.3を利用しています。 CakePHPのバリデーションエラーメッセージは、各モデルに書いたりしますが、ここではgettextの__()を使った国際化の記述ができません。CakeBookにそのための回避策が一応書いてありました。 http://book.cakephp.org/ja/view/163/Localization-in-CakePHP 下記の記述をapp_model.phpに入れとけば、エラーメッセージ出力時に__()を付けてくれるので、言語ごとにエラーメッセージが切り替わります。 function invalidate($field, $value = true) { return parent::invalidate($field, __($value, true)); } 上記が一番楽なパターンではあるのですが、国際化対応する箇所をコマンド一発で抽出して
CakePHPでのvalidateネタ。 validateは入力チェック正規表現をmodelの$validateに配列で設定しておくだけなんだけど、メールアドレスの重複チェックなんかはそのままではどうにもできない。 modelの$validateに正規表現ではなく、(入力チェック)メソッド名を入れとけばそれを呼んでくれたりするのかな、と思ったがそれはナシ。 マニュアルではcontrollerで重複チェックを行う方法が載っているだが、正規表現でのチェックはmodelにあるので一緒にmodel内に書きたいところ。 で、考えたのが以下の3つの方法。 model#beforeValidate()に書く 正規表現での入力チェックより先に呼ばれてしまう。 一意チェックなんかではDBアクセスが発生するから正規表現でのチェックを通過したものだけ処理を行う方が良い。 model#validates()に書く
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く