How to validate array of arrays in Symfony 4
I want to know how can I validate array of arrays in symfony.
My validation rules are:
- User - NotBlank
- Date - Date and NotBlank
- Present - NotBlank
So far I have done this:
$validator = Validation::createValidator();
$constraint = new AssertCollection(array(
'user' => new AssertNotBlank(),
'date' => new AssertDate(),
'present' => new AssertNotBlank()
));
$violations = $validator->validate($request->request->get('absences')[0], $constraint);
But the problem is that it only allows to validate single array eg.$request->request->get('absences')[0]
.
Here is how the array looks like:
symfony symfony4
add a comment |
I want to know how can I validate array of arrays in symfony.
My validation rules are:
- User - NotBlank
- Date - Date and NotBlank
- Present - NotBlank
So far I have done this:
$validator = Validation::createValidator();
$constraint = new AssertCollection(array(
'user' => new AssertNotBlank(),
'date' => new AssertDate(),
'present' => new AssertNotBlank()
));
$violations = $validator->validate($request->request->get('absences')[0], $constraint);
But the problem is that it only allows to validate single array eg.$request->request->get('absences')[0]
.
Here is how the array looks like:
symfony symfony4
Possible duplicate of Use a custom constraint/validator in symfony form type
– emix
Nov 19 '18 at 12:11
Where do you see the duplicate?
– Martin
Nov 19 '18 at 12:31
add a comment |
I want to know how can I validate array of arrays in symfony.
My validation rules are:
- User - NotBlank
- Date - Date and NotBlank
- Present - NotBlank
So far I have done this:
$validator = Validation::createValidator();
$constraint = new AssertCollection(array(
'user' => new AssertNotBlank(),
'date' => new AssertDate(),
'present' => new AssertNotBlank()
));
$violations = $validator->validate($request->request->get('absences')[0], $constraint);
But the problem is that it only allows to validate single array eg.$request->request->get('absences')[0]
.
Here is how the array looks like:
symfony symfony4
I want to know how can I validate array of arrays in symfony.
My validation rules are:
- User - NotBlank
- Date - Date and NotBlank
- Present - NotBlank
So far I have done this:
$validator = Validation::createValidator();
$constraint = new AssertCollection(array(
'user' => new AssertNotBlank(),
'date' => new AssertDate(),
'present' => new AssertNotBlank()
));
$violations = $validator->validate($request->request->get('absences')[0], $constraint);
But the problem is that it only allows to validate single array eg.$request->request->get('absences')[0]
.
Here is how the array looks like:
symfony symfony4
symfony symfony4
edited Nov 19 '18 at 12:44
asked Nov 19 '18 at 12:09
Martin
718624
718624
Possible duplicate of Use a custom constraint/validator in symfony form type
– emix
Nov 19 '18 at 12:11
Where do you see the duplicate?
– Martin
Nov 19 '18 at 12:31
add a comment |
Possible duplicate of Use a custom constraint/validator in symfony form type
– emix
Nov 19 '18 at 12:11
Where do you see the duplicate?
– Martin
Nov 19 '18 at 12:31
Possible duplicate of Use a custom constraint/validator in symfony form type
– emix
Nov 19 '18 at 12:11
Possible duplicate of Use a custom constraint/validator in symfony form type
– emix
Nov 19 '18 at 12:11
Where do you see the duplicate?
– Martin
Nov 19 '18 at 12:31
Where do you see the duplicate?
– Martin
Nov 19 '18 at 12:31
add a comment |
1 Answer
1
active
oldest
votes
You have to put the Collection
constraint inside All constraint:
When applied to an array (or Traversable object), this constraint allows you to apply a collection of constraints to each element of the array.
So, your code will probably look like this:
$constraint = new AssertAll(['constraints' => [
new AssertCollection([
'user' => new AssertNotBlank(),
'date' => new AssertDate(),
'present' => new AssertNotBlank()
])
]);
Thanks. I was looking at the All assertion, but did not figure it out, that I can pass Collection into all Assertion.
– Martin
Nov 19 '18 at 12:57
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53374344%2fhow-to-validate-array-of-arrays-in-symfony-4%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
You have to put the Collection
constraint inside All constraint:
When applied to an array (or Traversable object), this constraint allows you to apply a collection of constraints to each element of the array.
So, your code will probably look like this:
$constraint = new AssertAll(['constraints' => [
new AssertCollection([
'user' => new AssertNotBlank(),
'date' => new AssertDate(),
'present' => new AssertNotBlank()
])
]);
Thanks. I was looking at the All assertion, but did not figure it out, that I can pass Collection into all Assertion.
– Martin
Nov 19 '18 at 12:57
add a comment |
You have to put the Collection
constraint inside All constraint:
When applied to an array (or Traversable object), this constraint allows you to apply a collection of constraints to each element of the array.
So, your code will probably look like this:
$constraint = new AssertAll(['constraints' => [
new AssertCollection([
'user' => new AssertNotBlank(),
'date' => new AssertDate(),
'present' => new AssertNotBlank()
])
]);
Thanks. I was looking at the All assertion, but did not figure it out, that I can pass Collection into all Assertion.
– Martin
Nov 19 '18 at 12:57
add a comment |
You have to put the Collection
constraint inside All constraint:
When applied to an array (or Traversable object), this constraint allows you to apply a collection of constraints to each element of the array.
So, your code will probably look like this:
$constraint = new AssertAll(['constraints' => [
new AssertCollection([
'user' => new AssertNotBlank(),
'date' => new AssertDate(),
'present' => new AssertNotBlank()
])
]);
You have to put the Collection
constraint inside All constraint:
When applied to an array (or Traversable object), this constraint allows you to apply a collection of constraints to each element of the array.
So, your code will probably look like this:
$constraint = new AssertAll(['constraints' => [
new AssertCollection([
'user' => new AssertNotBlank(),
'date' => new AssertDate(),
'present' => new AssertNotBlank()
])
]);
answered Nov 19 '18 at 12:50
Bartosz Zasada
2,62521321
2,62521321
Thanks. I was looking at the All assertion, but did not figure it out, that I can pass Collection into all Assertion.
– Martin
Nov 19 '18 at 12:57
add a comment |
Thanks. I was looking at the All assertion, but did not figure it out, that I can pass Collection into all Assertion.
– Martin
Nov 19 '18 at 12:57
Thanks. I was looking at the All assertion, but did not figure it out, that I can pass Collection into all Assertion.
– Martin
Nov 19 '18 at 12:57
Thanks. I was looking at the All assertion, but did not figure it out, that I can pass Collection into all Assertion.
– Martin
Nov 19 '18 at 12:57
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53374344%2fhow-to-validate-array-of-arrays-in-symfony-4%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Possible duplicate of Use a custom constraint/validator in symfony form type
– emix
Nov 19 '18 at 12:11
Where do you see the duplicate?
– Martin
Nov 19 '18 at 12:31