@@ -152,88 +152,6 @@ Use this option to define the fully-qualified class name (FQCN) of the Doctrine
152
152
entity associated with the repository you want to use.
153
153
Another case is when the validated object is not an entity.
154
154
155
-
156
- Consider this example:
157
-
158
- .. configuration-block ::
159
-
160
- .. code-block :: php-annotations
161
-
162
- // src/Message/UpdateEmployeeProfile.php
163
- namespace App\Message;
164
-
165
- use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
166
-
167
- /**
168
- * @UniqueEntity(fields={"name": "username"}, entityClass="App\Entity\User", identifierFieldNames={"uid": "id"})
169
- */
170
- class UpdateEmployeeProfile
171
- {
172
- public $uid;
173
- public $name;
174
-
175
- public function __construct($uid, $name)
176
- {
177
- $this->uid = $uid;
178
- $this->name = $name;
179
- }
180
- }
181
-
182
- .. code-block :: yaml
183
-
184
- # config/validator/validation.yaml
185
- App\Message\UpdateEmployeeProfile :
186
- constraints :
187
- - Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity :
188
- fields : [name: username]
189
- entityClass : ' App\Entity\User'
190
- identifierFieldNames : [uid: id]
191
-
192
- .. code-block :: xml
193
-
194
- <!-- config/validator/validation.xml -->
195
- <?xml version =" 1.0" encoding =" UTF-8" ?>
196
- <constraint-mapping xmlns =" http://symfony.com/schema/dic/constraint-mapping"
197
- xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance"
198
- xsi : schemaLocation =" http://symfony.com/schema/dic/constraint-mapping https://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd" >
199
-
200
- <class name =" App\Message\UpdateEmployeeProfile" >
201
- <constraint name =" Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity" >
202
- <option name =" fields" >
203
- <value key =" name" >username</value >
204
- </option >
205
- <option name =" entityClass" >App\Entity\User</option >
206
- <option name =" identifierFieldNames" >
207
- <value key =" uid" >id</value >
208
- </option >
209
- </constraint >
210
- </class >
211
-
212
- </constraint-mapping >
213
-
214
- .. code-block :: php
215
-
216
- // src/Message/UpdateEmployeeProfile.php
217
- namespace App\Message;
218
-
219
- use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
220
- use Symfony\Component\Validator\Mapping\ClassMetadata;
221
-
222
- class UpdateEmployeeProfile
223
- {
224
- public $uid;
225
- public $name;
226
-
227
- public static function loadValidatorMetadata(ClassMetadata $metadata)
228
- {
229
- $metadata->addConstraint(new UniqueEntity([
230
- 'fields' => ['name' => 'username'],
231
- 'entityClass' => 'App\Entity\User',
232
- 'identifierFieldNames' => ['uid' => 'id'],
233
- ]));
234
- }
235
- }
236
-
237
155
errorPath
238
156
~~~~~~~~~
239
157
@@ -366,6 +284,87 @@ If validated object field names do not match the ones from the entity,
366
284
use key-value mapping; Where ``key `` is the name of the field in the validated object
367
285
and ``value `` is the name of the field in the entity.
368
286
287
+ Consider this example:
288
+
289
+ .. configuration-block ::
290
+
291
+ .. code-block :: php-annotations
292
+
293
+ // src/Message/UpdateEmployeeProfile.php
294
+ namespace App\Message;
295
+
296
+ use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
297
+
298
+ /**
299
+ * @UniqueEntity(fields={"name": "username"}, entityClass="App\Entity\User", identifierFieldNames={"uid": "id"})
300
+ */
301
+ class UpdateEmployeeProfile
302
+ {
303
+ public $uid;
304
+ public $name;
305
+
306
+ public function __construct($uid, $name)
307
+ {
308
+ $this->uid = $uid;
309
+ $this->name = $name;
310
+ }
311
+ }
312
+
313
+ .. code-block :: yaml
314
+
315
+ # config/validator/validation.yaml
316
+ App\Message\UpdateEmployeeProfile :
317
+ constraints :
318
+ - Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity :
319
+ fields : {name: username}
320
+ entityClass : ' App\Entity\User'
321
+ identifierFieldNames : {uid: id}
322
+
323
+ .. code-block :: xml
324
+
325
+ <!-- config/validator/validation.xml -->
326
+ <?xml version =" 1.0" encoding =" UTF-8" ?>
327
+ <constraint-mapping xmlns =" http://symfony.com/schema/dic/constraint-mapping"
328
+ xmlns : xsi =" http://www.w3.org/2001/XMLSchema-instance"
329
+ xsi : schemaLocation =" http://symfony.com/schema/dic/constraint-mapping https://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd" >
330
+
331
+ <class name =" App\Message\UpdateEmployeeProfile" >
332
+ <constraint name =" Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity" >
333
+ <option name =" fields" >
334
+ <value key =" name" >username</value >
335
+ </option >
336
+ <option name =" entityClass" >App\Entity\User</option >
337
+ <option name =" identifierFieldNames" >
338
+ <value key =" uid" >id</value >
339
+ </option >
340
+ </constraint >
341
+ </class >
342
+
343
+ </constraint-mapping >
344
+
345
+ .. code-block :: php
346
+
347
+ // src/Message/UpdateEmployeeProfile.php
348
+ namespace App\Message;
349
+
350
+ use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
351
+ use Symfony\Component\Validator\Mapping\ClassMetadata;
352
+
353
+ class UpdateEmployeeProfile
354
+ {
355
+ public $uid;
356
+ public $name;
357
+
358
+ public static function loadValidatorMetadata(ClassMetadata $metadata)
359
+ {
360
+ $metadata->addConstraint(new UniqueEntity([
361
+ 'fields' => ['name' => 'username'],
362
+ 'entityClass' => 'App\Entity\User',
363
+ 'identifierFieldNames' => ['uid' => 'id'],
364
+ ]));
365
+ }
366
+ }
367
+
369
368
.. versionadded :: 5.2
370
369
371
370
The option was introduced in Symfony 5.2.
0 commit comments