どうすればそれができますか?
特定のアクションでは、1 つのフィールドだけを検証したいと考えています。別の 3 つのフィールドなどでは、作成/更新だけではありません。たとえば、次のようになります。
いくつかのフィルターを備えた検索フォームがあり、ユーザーがすべてのフィールドに入力したかどうかを検証する必要があります(javascriptではありません)。
詳細
CakePHP: 2.3
MySQL: 5.1
Apache: 2.2
PHP: 5.3.9
Model->validates()
検証するフィールドの配列を手動で実行する必要があります。次に、検証チェックなしで ->save() を実行します。
$this->ModelName->set($this->request->data);
if ($this->ModelName->validates(array('fieldList' => array('email', 'password')))) {
$this->ModelName->save($this->request->data, false); //false = no validation checking
}
参照: http://book.cakephp.org/2.0/en/models/data-validation/validating-data-from-the-controller.html
アクションに基づいて検証ルールを切り替えるための優れたソリューションを次に示します。