BlogCakePHPを中心としたサイト開発情報をメインに公開。新しもの好きなので時々製品レポートなんかも。MASA-P【CakePHP】バリデーションでのはまりどころ「required」指定バリデーションについて、勘違いしていたことがあるのでメモ書きをしておきます。バリデーション指定の中に「required」というパラメータがあるのですが、これは「必ず存在するフィールド」を定義するもののようですね。私は思いっきり「入力の必須項目」と勘違いしていました。いうのは、MediaPluginが上手く動かない場合があってトータル3日くらいはまっていたのですが、実は理由がこれだったのです。Modelそのもの)の他に「タイトル」や「説明」を含むモデルを作るとしましょう。タイトルや説明を編集したい場合、既にファイルはアップロードされていますから、ファイル関連のフィールドは省きたいところです。required=>trueとしてしまうと、編集でもファイルアップロードが要求され、更新できなくなります。同じように、パスワードの変更で、「新しいパスワード」「新しいパスワード(確認)」という項目を作り、両方が正しい場合だけパスワード更新をする、というような場合があります。これも、require=>trueとすると大変なことになります。動的にフィールドを変更する必要のあるモデルに関しては、requiredは指定しない方がはまりは少ないと感じます。null」の指定されたフィールドのみ、「on」でcreateとupdateに分け、createにだけrequired=>trueにすると安全かもしれません。(追記:これはNGでした)自分だけだったら恥ずかしいのですが、でも勘違いされている人、知らなかった人も多いのではないかと思い書いてみました。