Code
Explorer
You are a developer and looking for Shopware projects?
Apply Now!
getExtraData example
$form
->
add
(
$this
->
createForm
(
'bar'
)
)
;
$this
->
setRequestData
(
'PUT',
[
'foo' =>
[
'_method' => 'PUT',
'bar' => 'baz',
]
,
]
)
;
$this
->requestHandler->
handleRequest
(
$form
,
$this
->request
)
;
$this
->
assertSame
(
[
]
,
$form
->
getExtraData
(
)
)
;
}
public
function
testFormDoesNotIgnoreMethodFieldIfRequestMethodIsNotMatched
(
)
{
$form
=
$this
->
createForm
(
'foo', 'PUT', true
)
;
$form
->
add
(
$this
->
createForm
(
'bar'
)
)
;
$this
->
setRequestData
(
'PUT',
[
'foo' =>
[
'_method' => 'DELETE',
'bar' => 'baz',
]
,
->
getNamespace
(
'frontend/account/internalMessages'
)
->
get
(
'ErrorFillIn', 'Please fill in all red fields'
)
;
array_unshift
(
$errorMessages
,
$errorMessage
)
;
}
$address
=
$form
->
getViewData
(
)
;
$formData
=
array_merge
(
$this
->
get
(
ModelManager::
class
)
->
toArray
(
$address
)
,
[
'attribute' =>
$this
->
get
(
ModelManager::
class
)
->
toArray
(
$address
->
getAttribute
(
)
)
]
,
[
'additional' =>
$address
->
getAdditional
(
)
]
,
$form
->
getExtraData
(
)
)
;
$viewData
[
'error_flags'
]
=
$errorFlags
;
$viewData
[
'error_messages'
]
=
$errorMessages
;
$viewData
[
'countryList'
]
=
$this
->admin->
sGetCountryList
(
)
;
$viewData
[
'formData'
]
=
$formData
;
$viewData
[
'sTarget'
]
=
$this
->
Request
(
)
->
getParam
(
'sTarget'
)
;
$viewData
[
'sTargetAction'
]
=
$this
->
Request
(
)
->
getParam
(
'sTargetAction'
)
;
$viewData
[
'extraData'
]
=
$this
->
Request
(
)
->
getParam
(
'extraData',
[
]
)
;
return
$viewData
;
}
$config
->
getOption
(
'invalid_message_parameters'
)
,
$failure
->
getInvalidMessageParameters
(
)
)
)
->
setInvalidValue
(
$form
->
getViewData
(
)
)
->
setCode
(
Form::NOT_SYNCHRONIZED_ERROR
)
->
setCause
(
$failure
)
->
addViolation
(
)
;
}
}
// Mark the form with an error if it contains extra fields
if
(
!
$config
->
getOption
(
'allow_extra_fields'
)
&& \
count
(
$form
->
getExtraData
(
)
)
> 0
)
{
$this
->context->
setConstraint
(
$formConstraint
)
;
$this
->context->
buildViolation
(
$config
->
getOption
(
'extra_fields_message', ''
)
)
->
setParameter
(
'{{ extra_fields }}', '"'.
implode
(
'", "',
array_keys
(
$form
->
getExtraData
(
)
)
)
.'"'
)
->
setPlural
(
\
count
(
$form
->
getExtraData
(
)
)
)
->
setInvalidValue
(
$form
->
getExtraData
(
)
)
->
setCode
(
Form::NO_SUCH_FIELD_ERROR
)
->
addViolation
(
)
;
}
}
/** * Returns the validation groups of the given form. * * @return string|GroupSequence|array<string|GroupSequence> */
$form
=
$this
->factory->
create
(
static
::TESTED_TYPE, null,
[
'multiple' => false,
'expanded' => true,
'required' => true,
'choices' =>
$this
->choices,
]
)
;
$form
->
submit
(
'b'
)
;
$this
->
assertSame
(
'b',
$form
->
getData
(
)
)
;
$this
->
assertSame
(
'b',
$form
->
getViewData
(
)
)
;
$this
->
assertEmpty
(
$form
->
getExtraData
(
)
)
;
$this
->
assertTrue
(
$form
->
isSynchronized
(
)
)
;
$this
->
assertFalse
(
$form
[
0
]
->
getData
(
)
)
;
$this
->
assertTrue
(
$form
[
1
]
->
getData
(
)
)
;
$this
->
assertFalse
(
$form
[
2
]
->
getData
(
)
)
;
$this
->
assertFalse
(
$form
[
3
]
->
getData
(
)
)
;
$this
->
assertFalse
(
$form
[
4
]
->
getData
(
)
)
;
$this
->
assertNull
(
$form
[
0
]
->
getViewData
(
)
)
;
$this
->
assertSame
(
'b',
$form
[
1
]
->
getViewData
(
)
)
;
$this
->
assertNull
(
$form
[
2
]
->
getViewData
(
)
)
;
$this
->
assertNull
(
$form
[
3
]
->
getViewData
(
)
)
;
public
function
testSubmitDoesNotAddExtraFieldForNullValues
(
)
{
$factory
= Forms::
createFormFactoryBuilder
(
)
->
getFormFactory
(
)
;
$child
=
$factory
->
createNamed
(
'file', 'Symfony\Component\Form\Extension\Core\Type\FileType', null,
[
'auto_initialize' => false
]
)
;
$this
->form->
add
(
$child
)
;
$this
->form->
submit
(
[
'file' => null
]
, false
)
;
$this
->
assertCount
(
0,
$this
->form->
getExtraData
(
)
)
;
}
public
function
testClearMissingFlagIsForwarded
(
)
{
$personForm
=
$this
->
createForm
(
'person'
)
;
$firstNameForm
=
$this
->
createForm
(
'firstName', false
)
;
$personForm
->
add
(
$firstNameForm
)
;
$lastNameForm
=
$this
->
createForm
(
'lastName', false
)
;
$personForm
->
add
(
$lastNameForm
)
;