エンジニアの卵の成長日記

ふわっちで配信してますhttps://whowatch.tv/profile/w:kurowasi2525

CakePHPでvalidateErrorを自分で設定する【message】

今日はバレンタインでしたね
僕はいつも通りバイトでした

午前中はCakePHPの案件、午後はFuelPHPの案件をやったのですが、やっぱりFuelPHP最高ですね
思わずつぶやいてしまいました


そんな話はさておき、今日新しく学んだことはvalidateErrorを自分で設定することです
何を言ってんだこいつって思うと思います(自分でも何を言ってるかわからない)




CakePHPとvalidateは普通

<?php
    public $validate = array(
        'filedName' => array(
            'rule' => 'date',
            'message' => '正しい形式にしてください',
        ),
    );
?>

こんな感じだと思います(うろ覚え)


ですが、入力された時だけValidateしたいときなど、自分でルールを書いたりしたい時もあると思います
これが正しいのかわかりませんが、今日自分が実装した方法はこちら

<?php
    public $validate = array(
        'fieldName' => array(
            'rule' => array('hoge'),
        ),
    );

    public function hoge($check) {
        if (!empty(this->data['Model']['value']) || !empty(this->data['Model']['value'])) {
            $this->test();
            $this->hello();
            return 0;
        }
        ModelName->invalidate('fieldName', 'message');
    }
    public function test() {
        ModelName->invalidate('fieldName', 'message');
    }
    public function hello() {
        ModelName->invalidate('fieldName', 'message');
    }
?>


こんな感じで自由にValidateできました
もしかしたら、一番最初のコードの僕が普通だと思ってる形でいろいろできるのかもしれませんが、
今日という限られた時間の中で実装するためにはこれが限界でした...

<?php
    Model->invalidate('fieldName', 'message');
?>

覚えておいて損はないかも