Cakephp WEB開発

[Cakephp4]テーブル内でカスタムバリデート追加値の定義

※本サイトはPR表記を含みます。

Q. カスタムバリデートのコールバック関数を定義した際、Cakephpマニュアルにある`$extra`的な使い方は?

 validation_code
// プロバイダーではないコールバック関数を利用する
$validator->add('title', 'custom', [
'rule' => [$this, 'method'],
'message' => 'タイトルが正しくありません'
]);

で、Cakephpマニュアル内では別途使用したい引数などの追加値の書き方がないんです・・

 

ちなみに、プロバイダ(カスタムバリデーションを別ファイルで定義)を呼び出す形だと、
'rule' => 'customRule' の部分を、'rule' => ['customRule', 'hoge']
で追加の引数を入れることができます。

A. アンサーコード

 validation_code
->add('title', 'custom', [
'rule' => ['customValidation', 'hoge'], // プロバイダのメソッドをコールするやり方と変わらない。第二引数に追加値
'provider' => 'table',  // プロバイダをtableとする
'message' => '必須入力です。',
]);

 

rule => ['コールバックメソッド名', '追加値']

provider => table 指定するのがミソですね!

 

 

-Cakephp, WEB開発
-