Furudateのブログ

プログラミングやネットワーク系の知識・技術がメインのブログ。技術メモ帳的な感じになるかと。岩手から発信していきます。

【PHP】CakePHPで特定のバリデーションルールを解除

こんにちは。

CakePHPではモデルの$validateにバリデーションルールを指定しています。
ここで指定するとsaveのときや $this->Model->validates() で自動でバリデーションをしてくれてとても便利です。
しかし、場合によってはバリデーションルールの一部をここでは使わなくていい、というときがあります。
今回はその場合のやり方についてメモしておきます。

やり方としては、unsetで対象のルールを解除してからバリデーションを行います。
例えばUserモデルのemailのnotEmptyを解除したい場合は以下のように書きます。

<?php
    unset($this->User->validate['email']['notEmpty']);

    if ($this->User->validates()){
    
    }
?>

ちなみにunsetは(ローカル)変数の割当を解除する関数です。
今回は以上です。
それでは。

参考にさせていただいたサイト

CakePHP 一部のバリデーションルールを解除する - Code Life