CakePHPCakePHPを使用していて、以前からわかっているようで、わかっていないような気がすることがありました。それはバリデーションルールにあるallowEmptyとrequiredです。これって、わかるようでわかりにくい内容で、それをまとめたサイトもあるのですが、それを読んでもどうもシックリ来なかったりします。そこで、下記に自分用にまとめてみました。ちなみにCakePHPのバージョンは1.3です。英語での意味まず、それぞれの英語の意味を明記しておきます。allowEmpty空を許す、空を許可するrequired要する、必要とする、命じる、要求するまあ、わざわざ書かなくてもわかることでしょうが、書いておいた方が何となく優しかったりしますので。CakebookだとそれではそれぞれをCakePHPのドキュメントであるCakebookで見てみるとallowEmptyデフォルトはNull。常にバリデーションルールが適用される。フィールドが存在しその値が空で無いこと。空のフィールドは他に設定された全てのバリデーションを無視。required送られたデータにキーが存在し、値が空の場合は、バリデーションは成功します。すると、キーの存在だけを検証します。デフォルトはfalse。true:フィールドはデータの配列中に存在しなければならない。これだけを見てわかる人はわかりますが、わからない人はわからないですよね。上記のことを踏まえて、自分なりにまとめてみようと思いますが、その前にチェックするデータ形式などを決めておきましょう。チェックするデータは下記のようなUserモデルにあるnameフィールドに「俺だよ俺」という値が入っているものとします。‘俺だよ俺’;allowEmptyとはさて、まずはallowEmptyです。allowEmptyは英訳したとおり「空を許可するか」です。これはただ単純に「俺だよ俺」が入っているかではありません。Cakebookのfalseに「フィールドが存在し・・・」がキーポイントです。簡単に一文で書くと$this->data[‘User’]で「name」フィールドがあって(存在して)、「俺だよ俺」などの値が入っていること。allowEmptyのfalseでチェックします。簡単にわかるように表にしてみましょう。OK表内の「OK」はバリデーションに引っ掛からないという意味で、「Error」はバリデーションに引っ掛かると言うことです。わかるかな?requiredとは次にrequiredなんですが、英訳からすると「必須」かどうかなんですが、これもちょっとややこしく値が必須じゃなく、フィールドが必須かどうかということなんです。$this->data[‘User’]に「name」のキーが存在するかどうかをチェックしているのです。表で書くと下記のようになります。OK簡単にまとめるとどうでしょうかね?わかりますか?とにかくややこしいですよね。簡単にまとめるとallowEmptyフィールドがある場合に値の有無をチェックrequiredフィールドの有無をチェックといった感じでしょうか?これであっているかな・・・。̄;アマゾンのサーバでエラーが起こっているかもしれません。一度ページを再読み込みしてみてください。コメントをキャンセルメールアドレスが公開されることはありません。Accessを使った業務用ソフトウェアの提供やホームページ、ブログシステムの制作、Webを使った業務システムの開発を静岡県浜松市で行っています。