k01ken’s b10g

He110 W0r1d!

CakePHP3のバリデーションでフィールドの値がユニークなものかチェックする

開発環境は、Windows 10 Pro(64bit) + PHP 7.2.12 + CakePHP 3.6.13。

Railsだと簡単にバリデーションできるんですが、CakePHPには、なぜか公式のドキュメントには専用メソッドが書いていなくて、ネットを検索したらありました。

モデルのTable内にて、

<?php
$validator->add('カラム名', [['unique' => 'validateUnique', 'provider' => 'table', 'message' => 'すでに使われています']]);
?>

参考リンク
validation - Validating fields as unique in cakephp 3.0 - Stack Overflow
・このサイトにありました。
CakePHP - cakephp3 isUnique バリデーションの記述方法|teratail
バリデーション - 3.7
Class Cake\Validation\Validator | CakePHP 3.7
・公式ドキュメント(英語)なのに、ここには専用メソッドがなぜかありませんでした。