質問編集履歴

2

背景修正

2020/04/17 05:37

投稿

poteto4401
poteto4401

スコア57

test CHANGED
File without changes
test CHANGED
@@ -14,53 +14,11 @@
14
14
 
15
15
  `alpha_dash`をオーバーライドし、日本語対応したい。
16
16
 
17
- 以下のように定義たメソッドを、
17
+ 以下のような記述で実現出来る方法はありますでょうか?
18
18
 
19
19
  ```php
20
20
 
21
- class CustomAlphaValidator extends Validator
22
-
23
- {
24
-
25
- public function validateAlpha(string $value)
26
-
27
- {
28
-
29
- return preg_match('/^[A-Za-z]+$/', $value);
30
-
31
- }
32
-
33
-
34
-
35
- public function validateAlphaNum(string $value)
36
-
37
- {
38
-
39
- return preg_match('/^[A-Za-z\d]+$/', $value);
40
-
41
- }
42
-
43
-
44
-
45
- public function validateAlphaDash(string $value)
46
-
47
- {
48
-
49
- return preg_match('/^[A-Za-z\d_-]+$/', $value);
50
-
51
- }
52
-
53
- }
54
-
55
- ```
56
-
57
-
58
-
59
- このように利用する方法はありますか?
60
-
61
- ```php
62
-
63
- Validator::macro('alpha_dash', (string $value) => validateAlphaDash($value));
21
+ Validator::macro('alpha_dash', (string $value) => preg_match('/^[A-Za-z\d_-]+$/', $value);
64
22
 
65
23
  ```
66
24
 

1

現状の実装

2020/04/17 05:37

投稿

poteto4401
poteto4401

スコア57

test CHANGED
File without changes
test CHANGED
@@ -63,3 +63,89 @@
63
63
  Validator::macro('alpha_dash', (string $value) => validateAlphaDash($value));
64
64
 
65
65
  ```
66
+
67
+
68
+
69
+ ## 追記
70
+
71
+ 現状の実装は、以下のようにしています。
72
+
73
+
74
+
75
+ ```php
76
+
77
+ use Illuminate\Contracts\Validation\Rule;
78
+
79
+
80
+
81
+ class AlphaDashRule implements Rule
82
+
83
+ {
84
+
85
+ /**
86
+
87
+ * Determine if the validation rule passes.
88
+
89
+ *
90
+
91
+ * @param string $attribute
92
+
93
+ * @param mixed $value
94
+
95
+ * @return bool
96
+
97
+ */
98
+
99
+ public function passes($attribute, $value)
100
+
101
+ {
102
+
103
+ return preg_match('/^[A-Za-z\d_-]+$/', $value);
104
+
105
+ }
106
+
107
+ }
108
+
109
+ ```
110
+
111
+
112
+
113
+ ```php
114
+
115
+ class StoreRequest extends FormRequest
116
+
117
+ {
118
+
119
+ // ...
120
+
121
+
122
+
123
+ /**
124
+
125
+ * Get the validation rules that apply to the request.
126
+
127
+ *
128
+
129
+ * @return array
130
+
131
+ */
132
+
133
+ public function rules()
134
+
135
+ {
136
+
137
+ return [
138
+
139
+ 'name' => 'required|max:255',
140
+
141
+ 'slug' => ['required', 'max:50', new AlphaDashRule],
142
+
143
+ ];
144
+
145
+ }
146
+
147
+ }
148
+
149
+
150
+
151
+ ```