$validator
// 存在チェック
->requirePresence('car_name', 'create')
// 空でないことのチェック
->notEmpty('car_name', '車名は、必ず入力してください。')
// 文字数のチェック(バイト数ではない)
->add('car_name', [
'length' => [
'rule' => ['maxLength', 50],
'message' => '車名は、50 文字以内で入力してください。',
]
// 未入力OK
->allowEmpty('ownership_period_start')
// 日付形式のチェック
->add('ownership_period_start', 'date_check1', [
'rule' => ['date', 'ymd'],
'message' => '所有期間(開始)は、例:2017-01-20 といった日付形式で入力してください。',
])
->allowEmpty('model_year')
// 数値のチェック
->add('model_year', 'numeric_check', [
'rule' => ['numeric'],
'message' => '年式は、数値のみで入力してください。',
'last' => true,
])
// 最小値のチェック
->add('model_year', 'range_check', [
'rule' => ['comparison', ">=", MODEL_YEAR_MIN],
'message' => "年式は、" . MODEL_YEAR_MIN . " 年以降で入力してください。",
]);
下記メソッドは、デフォルトの処理でデータをバリデートする
ORM\Table::newEntity() ORM\Table::newEntities() ORM\Table::patchEntity() ORM\Table::patchEntities() または ORM\Table::save()
データ保存前にバリデーションチェックする場合
newEntity(), newEntities(), patchEntity() または patchEntities() を使った場合、 保存前のエンティティのバリデーションは自動的に実行されます。
カスタムバリデーションルール
[php]
// プロバイダーではないコールバック関数を利用する
$validator->add( フィールド, ルール, [‘rule’=> ルール設定 ]);
[/php]
プロバイダー
[php]
use App\Validation\ApiPermitValidation;
class hoge {
/**
* パラメタのチェック処理
*
* @param \Cake\Validation\Validator $validator
* @return \Cake\Validation\Validator
*/
public function validation(Validator $validator)
{
$validator
// API使用許可のチェック
->provider(‘authProvider’, ApiPermitValidation::class)
->add(‘token’, ‘custom’, [
‘rule’ => "allowExecute",
‘provider’ => ‘authProvider’,
‘message’ => ‘Execution API is not permitted.’
]);
return $validator;
}
}
[/php]

コメント