回答編集履歴
1
4.xのコードに修正
answer
CHANGED
@@ -13,7 +13,7 @@
|
|
13
13
|
|
14
14
|
ドキュメントに記載がありますので参照してください。
|
15
15
|
|
16
|
-
[バリデーション 条件付き/動的なエラーメッセージ - CakePHP
|
16
|
+
[バリデーション 条件付き/動的なエラーメッセージ - CakePHP 4.x](https://book.cakephp.org/4/ja/core-libraries/validation.html#dynamic-validation-error-messages)
|
17
17
|
|
18
18
|
コールバック関数の第2引数に `$context` が渡され、入力値は `$context['data']` で取得できます。
|
19
19
|
|
@@ -21,14 +21,14 @@
|
|
21
21
|
|
22
22
|
ドキュメントに記載がありますので参照してください。
|
23
23
|
|
24
|
-
[バリデーション 条件付バリデーション - CakePHP
|
24
|
+
[バリデーション 条件付バリデーション - CakePHP 4.x](https://book.cakephp.org/4/ja/core-libraries/validation.html#id8)
|
25
25
|
|
26
26
|
## 複数のバリデーションルールを定義し、それを切り替えて使う
|
27
27
|
|
28
28
|
今回の例であれば、次のように対象のTableクラスへ2つのルールを追加します。
|
29
29
|
|
30
30
|
```php
|
31
|
-
public function validationDefault(Validator $validator)
|
31
|
+
public function validationDefault(Validator $validator): Validator
|
32
32
|
{
|
33
33
|
// 共通のバリデーションルール定義
|
34
34
|
$validator->notEmptyString("age", "必須項目です");
|
@@ -36,18 +36,18 @@
|
|
36
36
|
return $validator;
|
37
37
|
}
|
38
38
|
|
39
|
-
public function validationA(Validator $validator)
|
39
|
+
public function validationA(Validator $validator): Validator
|
40
40
|
{
|
41
|
-
$this->validationDefault($validator); // 共通のルールを適用する
|
41
|
+
$validator = $this->validationDefault($validator); // 共通のルールを適用する
|
42
42
|
|
43
43
|
$validator->notEmptyString("name", "必須項目です");
|
44
44
|
|
45
45
|
return $validator;
|
46
46
|
}
|
47
47
|
|
48
|
-
public function validationB(Validator $validator)
|
48
|
+
public function validationB(Validator $validator): Validator
|
49
49
|
{
|
50
|
-
$this->validationDefault($validator); // 共通のルールを適用する
|
50
|
+
$validator = $this->validationDefault($validator); // 共通のルールを適用する
|
51
51
|
|
52
52
|
$validator->notEmptyString("address", "必須項目です");
|
53
53
|
|
@@ -73,4 +73,4 @@
|
|
73
73
|
$this->Samples->patchEntity($entity, $data, ['validate' => $validate]);
|
74
74
|
```
|
75
75
|
|
76
|
-
読んでね: [データの検証 アソシエーションに異なるバリデーションセットを使用 - CakePHP
|
76
|
+
読んでね: [データの検証 アソシエーションに異なるバリデーションセットを使用 - CakePHP 4.x](https://book.cakephp.org/4/ja/orm/validation.html#using-different-validators-per-association)
|