2015年11月9日月曜日

CakePHP 3でデータのバリデーション

CakePHP 3データのバリデーションです。save() メソッドが呼ばれると、validationDefault() が結果を返すらしい。

src/Model/Table/ArticlesTable.php
namespace App\Model\Table;
use Cake\ORM\Table;
use Cake\Validation\Validator;
class ArticlesTable extends Table
{
  public function initialize(array $config)
  {
    $this->addBehavior('Timestamp');
  }

  public function validationDefault(Validator $validator)
  {
    $validator
      ->notEmpty('title', '記入してください。')
      ->requirePresence('title')
      ->add('title', [
        'length' => [
          'rule' => ['minLength', 10],
          'message' => '10文字以上で記入してください。',
        ]
      ])
      ->notEmpty('body', '記入してください。')
      ->requirePresence('body')
      ->add('body', [
        'length' => [
          'rule' => ['minLength', 20],
          'message' => '20文字以上で記入してください。',
        ]
      ]);

    return $validator;
  }
}

実際に設定してみたサイトがこちら

参考サイト
Blog Tutorial - Part 2(CakePHP Cookbook 3.x documentation)
Validation(CakePHP Cookbook 3.x documentation)

0 件のコメント:

コメントを投稿