CakePHP Logo

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

2019/10/12

2017/02/15投稿ではてなブログから移行した内容です.

雑談

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

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

本題

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

CakePHPのvalidate記述

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

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

ですが、入力された時だけValidateしたいときなど、
自分でルールを書いたりしたいときもあると思います。

Validationルールを自分で作成

これが正しいのかわかりませんが、今日自分が実装した方法はこちら。

<?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');
?>

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

Togelloというサービスをリリースいたしました。