All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
4.21.0 - 2026-01-05
- [#1858] The
symfony/security-acldependency is now optional. You need to explicitly require it as a dependency if you are using ACL. (@dmaicher)
4.20.0 - 2025-12-18
- [#1852] Support for PHP 8.1 (@dmaicher)
- [#1852] Support for Symfony 7.1 and 7.2 (@dmaicher)
- [#1847] Support for
sonata-project/exporterv2 (@dmaicher) - [#1847] Support for
sonata-project/form-extensionsv1 (@dmaicher)
4.19.0 - 2025-10-12
- [#1840] Fixed Doctrine ClassMetadata reflFields deprecation (@VincentLanglet)
4.18.0 - 2025-02-03
4.17.1 - 2024-04-24
- [#1807] DateTimeRangeFilter when both the
startorendfield are not empty. (@VincentLanglet)
4.17.0 - 2024-04-13
- [#1805] Allow to pass extra field options in ClassFilter (@VincentLanglet)
4.16.1 - 2024-04-10
- [#1803] UidFilter
global_searchdefault value (@VincentLanglet) - [#1800] Catch possible null value error in
ModelFilter(@core23)
4.16.0 - 2024-02-26
4.15.0 - 2023-12-04
- [#1780] Support for Symfony 7. (@jordisala1991)
4.14.1 - 2023-11-20
- [#1767] DateTimeRangeFilter exception occurs when either the
startorendfield is empty. (@tonyaxo)
4.14.0 - 2023-10-23
4.13.0 - 2023-05-13
- [#1755] Support for
sonata-project/form-extensions2.0 (@jordisala1991) - [#1738] Support for
symfony/uidas primary keys usingUuidorUlid(@jordisala1991)
- [#1738]
ModelFilterfor related entities using compound ids (@jordisala1991) - [#1738]
ModelFilterwhen filtering for not equals and using an inverse side relation (@jordisala1991)
4.12.0 - 2023-04-24
- [#1737] Bump
sonata-project/form-extensionsto ^1.19 (@jordisala1991)
- [#1705] Fix export for admins sorted on a property that belongs to a one to many. (@jordisala1991)
- [#1739] Support for Symfony 4.4 (@jordisala1991)
- [#1739] Support for Twig 2 (@jordisala1991)
4.11.0 - 2023-04-09
- [#1734] Exception message at
ModelManager::batchDelete()in order to provide more details about the failed batch operation (@phansys)
- [#1722] Avoid dependency of
doctrine/common(@jordisala1991)
4.10.0 - 2023-03-09
- [#1714] Drop support for
doctrine/dbal^2.0. (@jordisala1991) - [#1714] Drop support for
doctrine/persistence^2.0. (@jordisala1991) - [#1715] Support for PHP 7.4
- [#1715] Support for Symfony 6.0 and 6.1
4.9.1 - 2022-12-29
- [#1690] ProxyQuery and ProxyQueryInterface are covariant (@VincentLanglet)
4.9.0 - 2022-12-01
- [#1703] Passing a null offset to
AuditReader::findRevisionHistory(@VincentLanglet)
- [#1700] Fix batch delete for more than 20 entities. (@jordisala1991)
4.8.0 - 2022-09-28
- [#1695] Fix batch delete on entities with json columns on PostgreSQL. (@jordisala1991)
4.7.0 - 2022-08-28
- [#1691] ModelManager::supportsQuery now supports AbstractQuery (@djpretzel)
- [#1691] ModelManager::execute now supports AbstractQuery (@djpretzel)
4.6.0 - 2022-08-22
- [#1687] Generics for ProxyQueryInterface and ProxyQuery (@VincentLanglet)
4.5.0 - 2022-08-16
- [#1685] ModelManager now implements ProxyResolverInterface (@VincentLanglet)
- [#1685] SonataAdminBundle 4.17 deprecations. (@VincentLanglet)
4.4.0 - 2022-08-02
- [#1680] Support for sonata-project/exporter ^3 (@VincentLanglet)
4.3.3 - 2022-07-22
- [#1677] Display of advanced filter for CounterFilter, NumberFilter, StringFilter and StringListFilter. (@VincentLanglet)
4.3.2 - 2022-07-21
- [#1674] Fix missing 'operator_type' array value returned in
AbstractDateFilter:: getFormOptions()bug to avoid not rendered advanced filter options in DateFilter or DateTimeFilter. (@davidromani)
4.3.1 - 2022-07-13
- [#1669] Solved deprecation with SonataAdminBundle 4.14 (@VincentLanglet)
4.3.0 - 2022-05-24
- [#1655] Precise Filter::filter() param as literal-string. (@VincentLanglet)
4.2.8 - 2022-03-29
- [#1646] The lastpage is correctly set to 1 when there is no results. (@VincentLanglet)
4.2.7 - 2022-03-04
- [#1641] Register EmptyFilter as a service (@willemverspyck)
4.2.6 - 2022-03-01
- [#1639] Add "sortBy" entity to "select" part of DQL to fix sorting on ManyToOne column (@willemverspyck)
4.2.5 - 2022-02-23
- [#1637] Fixed smart pagination disabling output walkers when the orderBy is set to a ToMany at proxy level. (@jordisala1991)
4.2.4 - 2022-02-19
4.2.3 - 2022-02-14
- [#1631] Support for the
model_classattribute for sonata admin classes inAddAuditEntityCompilerPass. (@nocive)
4.2.2 - 2022-01-15
4.2.1 - 2021-11-25
- [#1583] Paginator set useOutputWalkers to false for query with joins (@ossinkine)
4.2.0 - 2021-11-16
- [#1562] Added support for Symfony 6. (@jordisala1991)
- [#1573] Fixed using ModelFilter with ModelAutocompleteType (@willemverspyck)
- [#1571] Fixed non mapped
CallbackFilterdatagrid filter. (@toooni)
4.1.0 - 2021-10-29
- [#1558] Added support for Doctrine DBAL 3. (@jordisala1991)
- [#1545]
field_optionsare automatically passed to the Filter when anEntityTypeor aModelAutocompleteTypeis used. (@VincentLanglet)
- [#1545]
ModelAutocompleteFilterin favor ofModelFilterwith afield_typeModelAutocompleteType(@VincentLanglet) - [#1547] Calling
ModelManager::getEntityManager()(@VincentLanglet)
- [#1559] Removed support for Symfony 5.2 (@jordisala1991)
4.0.0 - 2021-09-06
- [#1523] Do not set a default route option to
FieldDescriptioninFieldDescriptionFactory(@VincentLanglet)
4.0.0-rc.2 - 2021-08-28
- [#1510]
AuditReadercompatibility with sonata-admin@4.0.0-rc.2 (@VincentLanglet)
4.0.0-rc.1 - 2021-08-10
- [#1458]
EmptyFilter(@VincentLanglet)
- [#1480]
Pager::getCurrentPageResults()does not returnPaginatoranymore. (@VincentLanglet)
4.0.0-alpha-2 - 2021-05-14
- [#1412] Add compatiblity with all SonataAdmin 4.0 versions (@jordisala1991)
- [#1421] Use
FilterDatainstead ofarrayin filters. (@VincentLanglet) - [#1438] Add final to abstract classes method. (@VincentLanglet)
- [#1435] BatchDelete method. (@VincentLanglet)
4.0.0-alpha-1 - 2021-04-11
See Changelog
3.35.3 - 2022-02-23
- [#1635] Fixed smart pagination disabling output walkers when the orderBy is set to a ToMany at proxy level. (@jordisala1991)
3.35.2 - 2022-01-21
3.35.1 - 2021-11-25
- [#1585] Paginator set useOutputWalkers to false for query with joins (@JustDylan23)
3.35.0 - 2021-07-20
- [#1470]
global_searchoption to theStringFilter(@VincentLanglet) - [#1457]
treat_null_asoption to BooleanFilter (@VincentLanglet) - [#1477]
GroupableConditionAwareInterface(@VincentLanglet)
- [#1477] "or_group" option in
Filterobjects (@VincentLanglet) - [#1477]
Filter::$groupedOrExpressions(@VincentLanglet)
- [#1473] Deprecation from SonataAdminBundle 3.x (@dmaicher)
- [#1470] Stop using
ChoiceTypeFilterfor global search (@VincentLanglet) - [#1477] Not resetting
Filter::$groupedOrExpressionsstatic property (see sonata-project/SonataAdminBundle#7096) (@VincentLanglet)
3.34.3 - 2021-06-13
- [#1455] Export for admin with fetch join in the
configureQuery()method (@VincentLanglet)
3.34.2 - 2021-05-31
- [#1444] Fixed issue where pagination of large dataset would take very long time or cause database engine to swap even for simplest queries without joins. (@alfabetagama)
3.34.1 - 2021-05-18
- [#1439] Bind arbitrary params as part of a value expression in the query filter at
Filter::applyWhere()with PostgreSQL. (@phansys)
3.34.0 - 2021-05-02
- [#1425]
ProxyQuery::execute()is now returning a Paginator instead of an array. (@VincentLanglet)
- [#1427]
templates.formandtemplates.filterconfig (@VincentLanglet) - [#1428] Deprecated not adding
FilterDataas type declaration of argument 4 in the callable passed toCallbackFilter(@franmomu)
- [#1427] Always merge
SonataDoctrineORMAdminform and filter templates. (@VincentLanglet) - [#1427] Using
sonata_adminconfiguration. (@VincentLanglet) - [#1425] Support for fetch join with simple pager. (@VincentLanglet)
3.33.0 - 2021-04-19
- [#1416] "force_case_insensitivity" option to
StringFilterin order to force the database to ignore the case sensitivity when matching filters. (@phansys)
- [#1408] Allow to decorate EntityManager (@michkinn)
- [#1414] Return type for
ModelManager::getModelIdentifier(). (@phansys) - [#1399] Fixed triggering always deprecation when calling
ModelManager::getDefaultSortValues()method (@franmomu)
3.32.1 - 2021-04-06
- [#1393] Added missing filter declaration in the config (@VincentLanglet)
3.32.0 - 2021-03-30
- [#1355]
ModelManager::reverseTransform()(@VincentLanglet) - [#1350] Added
FieldDescriptionFactoryclass (@VincentLanglet)
- [#1341] Deprecated the
Sonata\DoctrineORMAdminBundle\Filter\EmptyFilterservice since its class is already deprecated since version 3.27 (@dmaicher) - [#1355]
ModelManager::modelReverseTransform()(@VincentLanglet) - [#1350]
AbstractTypeGuesserclass (@VincentLanglet) - [#1350]
FilterTypeGuesser::guessType()(@VincentLanglet) - [#1350]
TypeGuesser::guessType()(@VincentLanglet) - [#1350]
ModelManager:: getParentMetadataForProperty()(@VincentLanglet) - [#1350]
ModelManager:: getNewFieldDescriptionInstance()(@VincentLanglet) - [#1350]
ModelManager:: getModelInstance()(@VincentLanglet)
- [#1376] Fixed triggering deprecation because audit reader is not tagged (@franmomu)
- [#1374] Fixed deprecations about not implementing
FieldDescriptionInterfacemethods (@franmomu) - [#1358] Resulting
WHEREclause fromFilter::applyWhere()when usingORconditions on queries that already have previous conditions (@phansys) - [#1368] Fetch join queries for Pager (@VincentLanglet)
- [#1368] Pager when using entity inheritance (@VincentLanglet)
- [#1365] Missing argument 2 in calls to
trigger_error()(@phansys)
3.31.0 - 2021-03-11
- [#1335] Support for symfony/config:^5.2 (@phansys)
- [#1335] Support for symfony/dependency-injection:^5.2 (@phansys)
- [#1335] Support for symfony/http-foundation:^5.2 (@phansys)
- [#1319]
Sonata\DoctrineORMAdminBundle\Datagrid\ProxyQueryInterface::getDoctrineQuery()(@VincentLanglet)
- [#1333] Deprecate passing arguments to
ProxyQuery::execute()method (@VincentLanglet) - [#1326] Not passing a
Sonata\DoctrineORMAdminBundle\Datagrid\ProxyQueryInterfaceas argument 2 ofModelManager::addIdentifiersToQuery()(@VincentLanglet) - [#1326] Not passing a
Sonata\DoctrineORMAdminBundle\Datagrid\ProxyQueryInterfaceas argument 2 ofModelManager::batchDelete()(@VincentLanglet) - [#1319] Class
Sonata\DoctrineORMAdminBundle\Datagrid\OrderByToSelectWalker(@VincentLanglet) - [#1319]
Sonata\DoctrineORMAdminBundle\Datagrid\ProxyQuery::getFixedQueryBuilder()(@VincentLanglet) - [#1319]
Sonata\DoctrineORMAdminBundle\Datagrid\ProxyQuery::getSingleScalarResult()(@VincentLanglet) - [#1323] Not passing a
ManagerRegistryas first argument ofObjectAclManipulator(@VincentLanglet)
- [#1319] Do not display multiple times the same row in the admin list and the export list (@VincentLanglet)
3.30.0 - 2021-02-24
- [#1291] Passing another
typevalue to a filter than an integer handled (@VincentLanglet)
- [#1314] Unavoidable deprecation about the
codeoption (@VincentLanglet) - [#1247]
ChoiceFilterreturnsnullvalues when used with the typeNOT_EQUAL(@VincentLanglet)
3.29.0 - 2021-02-08
- [#1292] Extending
ProxyQuery(@VincentLanglet) - [#1292] Extending
DataSource(@VincentLanglet)
- [#1287] Fixed
CountFilter(@VincentLanglet)
3.28.0 - 2021-01-26
- [#1280] Added
CountFilter. (@rgrassian)
- [#1268] Use Doctrine ORM Paginator to count in Pager. (@VincentLanglet)
- [#1268]
Pager::CONCAT_SEPARATOR(@VincentLanglet)
- [#1265] Do not provide a default
nullfield_typeoption for Filter (@VincentLanglet) - [#1268] Support of composite key for computeNbResult (@VincentLanglet)
3.27.0 - 2021-01-17
- [#1262] Added Pager::getCurrentPageResults() (@VincentLanglet)
- [#1257] Implemented
Sonata\AdminBundle\Datagrid\PagerInterface::countResults()(@dmaicher) - [#1234] Added
Sonata\DoctrineORMAdminBundle\Filter\NullFilter(@pbories) - [#1218] Added
Sonata\DoctrineORMAdminBundle\Datagrid\ProxyQueryInterface(@VincentLanglet) - [#1212] Added
DataSourceInterfaceimplementation (@VincentLanglet)
- [#1259] Code formatting in views and change from
<a>with empty href to button (@axzx) - [#1255] Changing access checking in views (isGranted to hasAccess) (@axzx)
- [#1241] When using embedded fields or fake field 'foo.bar' (with custom getters in the entity),
FieldDescription::fieldNameis changed frombarto the correct valuefoo.bar(@VincentLanglet)
- [#1262] Deprecated Pager::getResults() (@VincentLanglet)
- [#1257]
Sonata\DoctrineORMAdminBundle\Datagrid\Pager::computeNbResult()(@dmaicher) - [#1257]
Sonata\DoctrineORMAdminBundle\Datagrid\Pager::getNbResults()(@dmaicher) - [#1257]
Sonata\DoctrineORMAdminBundle\Datagrid\Pager::setNbResults()(@dmaicher) - [#1234] Deprecated
Sonata\DoctrineORMAdminBundle\Filter\EmptyFilter(@pbories) - [#1232] Deprecated
ModelManager::getMetadata()method (@VincentLanglet) - [#1232] Deprecated
ModelManager::hasMetadata()method (@VincentLanglet) - [#1211] Deprecate
Sonata\DoctrineORMAdminBundle\Model\ModelManager::modelTransform()with no replacement (@VincentLanglet) - [#1211] Deprecate
Sonata\DoctrineORMAdminBundle\Model\ModelManager::getDefaultPerPageOptions()with no replacement (@VincentLanglet) - [#1211] Deprecate
Sonata\DoctrineORMAdminBundle\Model\ModelManager::getDefaultSortValues()with no replacement (@VincentLanglet) - [#1211] Deprecate
Sonata\DoctrineORMAdminBundle\Model\ModelManager::getDataSourceIterator()with no replacement (@VincentLanglet) - [#1199] Deprecate passing an instance of
ProxyQueryInterfacewhich is not an instance ofSonata\DoctrineORMAdminBundle\Datagrid::ProxyQueryas argument 1 to theSonata\DoctrineORMAdminBundle\Filter\Filter::filter()method (@VincentLanglet)
- [#1248] Unavoidable deprecation in Pager (@VincentLanglet)
- [#1254] Fix for checking if delete button is to be displayed (@axzx)
- [#1241] Support for embedded and custom getters by the FieldDescription (@VincentLanglet)
3.26.0 - 2020-11-19
- [#1207] Added an option
inversefor theEmptyFilterfilter (@VincentLanglet) - [#1120] Allow empty string for filtering (@peter-gribanov)
3.25.0 - 2020-11-15
- [#1202] Added "Not equal" filter for
StringFilter(@VincentLanglet) - [#1190] Support for
\DateTimeImmutableatAbstractDateFilter::filter()(@phansys) - [#1166] Check to guarantee that argument 3 passed to
ModelManager::addIdentifiersToQuery()is not an empty array (@phansys)
- [#1170] Instantiate a FieldDescription without passing the name as first argument (@VincentLanglet)
- [#1159] Using a callback filter with a callback option which does not return a boolean (@VincentLanglet)
- [#1197]
FormContractor::getDefaultOptions()passescollection_by_referenceoption instead ofby_referencetoAdminTypein order to respect the new API (@VincentLanglet) - [#1189] Setting wrong date and time references at
AbstractDateFilter::filter()(@phansys) - [#1136]
TypeErrorthrown byexplode()when receiving non string values as argument 2 from argument 3 atModelManager::addIdentifiersToQuery()(@phansys)
3.24.0 - 2020-10-08
- [#1142]
FormContractor::getDefaultOptions()passby_referencefromCollectionTypetoAdminType(@VincentLanglet) - [#1127] Add more phpdoc (@core23)
- [#1113]
ModelManager::supportsQuery()method (@VincentLanglet) - [#1117] Allow
doctrine/persistence2 (@franmomu)
- [#1113] Calling
executeQuery()on something else than an instance ofDoctrine\ORM\QueryBuilderorSonata\DoctrineORMAdminBundle\Datagrid\ProxyQuery(@VincentLanglet)
3.23.0 - 2020-09-13
- [#1109] Deprecate ModelManager collections methods. (@VincentLanglet)
- [#1109] Deprecate ModelManager::getPaginationParameters(). (@VincentLanglet)
- [#1109] Deprecate ModelManager::getSortParameters(). (@VincentLanglet)
3.22.0 - 2020-08-29
- [#1091] Added support for symfony/options-resolver:^5.1 (@phansys)
- [#1091] Added support for symfony/property-access:^5.1 (@phansys)
- [#1100] Add support for Twig 3 (@willemverspyck)
- [#1023] Add support for SonataBlockBundle 4.0 (@wbloszyk)
- [#1077] Use
deprecatedtag instead ofsonata_template_deprecateto not throw unwanted deprecation notices (@franmomu)
- [#1082] Deprecate ModelManager::getParentFieldDescription with no replacement (@VincentLanglet)
- [#1078] Deprecate
ModelManager::camelize(@VincentLanglet)
3.21.0 - 2020-07-14
- [#1061]
formatoption of theStringFilter. (@VincentLanglet) - [#1067] Passing a string as argument 1 when instantiating Sonata\DoctrineORMAdminBundle\Block\AuditBlockService (@VincentLanglet)
3.20.0 - 2020-06-30
- [#1057]
Add
StringFiltersupport forSTART_WITHandEND_WITHoperator (@napestershine) - [#1049]
Added
FieldDescription::getTargetModel(). (@phansys)
- [#1049] Deprecated passing
nullas argument 2 forModelManager::find(); (@phansys) - [#1049] Deprecated passing
nullas argument 1 forModelManager::getNormalizedIdentifier(); (@phansys) - [#1049] Deprecated passing objects which are in state 2 (new) or 4 (removed) as argument 1 for
ModelManager::getNormalizedIdentifier(); (@phansys) - [#1049] Deprecated passing other type than
objectas argument 1 forModelManager::getUrlSafeIdentifier(); (@phansys) - [#1049] Deprecated
FieldDescription::getTargetEntity()in favor ofFieldDescription::getTargetModel(). (@phansys)
3.19.0 - 2020-06-26
- [#1055]
decimalandfloattype use thefloattemplate if nonumbertemplate exists (@VincentLanglet)
- [#1055]
one_to_one,one_to_many,many_to_oneandmany_to_manytype are correctly using the template defined in your config instead of the Sonata one. (@VincentLanglet)
3.18.0 - 2020-06-02
- Added direct dependency against "twig/twig".
- Added
ModelManager::getDefaultPerPageOptions ArrayFilterwhich supports@ORM\Column(type="array")
- Fixed usage of deprecated Twig syntax
for..if. - StringFilter now correctly takes the
case_sensitiveoption into account when the operator is=.
3.17.1 - 2020-04-21
Typo in AbstractDateFilter, DateRangeOperatorType::TYPE_EQUAL should have been
DateOperatorType::TYPE_EQUAL.
3.17.0 - 2020-04-11
- Fixed weak check at
ModelManager::getNormalizedIdentifier().
- Deprecate
getModelIdentifierfromModelManager
3.16.0 - 2020-04-02
@methodannotation forProxyQuery
- Fixed returning
voidinModelManager::getNormalizedIdentifier(), which is intended to return a value ornull. - Removed deprecated usage of admin
FormTypeconstants - Concat value of complex primary key for correct calculate total pages in
Datagrid
- Drop support of php 7.1
3.15.0 - 2020-03-16
- Added support for guessing the show type of
simple_arrayfields. - Allow null to be selected in ChoiceFilter
- Allow
_sort_byfilter to not be initially defined. sonata.admin.managertag tosonata.admin.manager.ormservice.
- The
_sort_by_datagrid value is properly applied before any customorderBy. - Crash when entity has many identifiers and one of the not last identifiers is an entity.
3.14.0 - 2020-02-04
- crash in
computeNbResultwheregroupBywas used - deprecations from
doctrine/persistence - Avoid to call not accessible
toString()methods.
- Disabled validation group in
Builder/DatagridBuilder::getBaseDatagrid()
- Added check and call of
toStringand__toStringwhen callinggetValueFromTypeon value-object such as Uuid
3.13.0 - 2019-12-23
- Fix ProxyQuery::getQueryBuilder() return type.
operator_type and operator_options are overridable for the provided Filters
- Support for Symfony < 3.4
- Support for Symfony >= 4, < 4.2
3.12.0 - 2019-11-23
- Added support for Doctrine-Bundle 2.0
- Do not return exception if
Pager->computeNbResulthas no result
3.11.0 - 2019-11-03
- Fix a break BC error
Create const for operator choices in Filter classes
3.10.0 - 2019-07-20
- Don't hide edit button
sonata_type_model_list_widgetif there is no value
- Use a more reliable method for represent composite identifiers in a string
3.9.0 - 2019-04-17
- Added support for protected (no public constructor) entity creation
3.8.3 - 2019-02-28
- Deprecations about core bundle forms
- Exception on
StringFilterwith null values - autocomplete action no longer advertises for more items when there are actually none
3.8.2 - 2019-02-04
Sonata\DoctrineORMAdminBundle\Datagrid\Pager::computeNbResult()now returns an integer, not a string- Composite key pagination throwing exception
3.8.1 - 2019-01-23
TypeError with explode in ModelManager
3.8.0 - 2019-01-20
- Compatibility with
sonata-project/exporter2
- support for php 5 and php 7.0
3.7.0 - 2018-12-29
- Offer support of id string resolution for entity id object where
__toString()will be used if provided. (This also fixes the issue where the id fails to display when the binary / byte datatype is used as primary key, e.g., UUIDBinaryType (aka: InnoDB Optimised Binary UUIDs)) - Added possibility to make
StringFiltercase-insensitive
- Fix using the new collection type namespace
- Fix deprecation for symfony/config 4.2+
- Fix
Twig_Error_Runtime"Key "associationAdmin" for array with keys translationDomain, associationadmin, options" does not exist."
3.6.3 - 2018-10-25
sonata.admin.manipulator.acl.object.ormis now public
3.6.2 - 2018-10-01
- Composite key not working
- Block
sonata_type_model_list_widgetin templateForm/form_admin_fields.html.twignow determines the object identifier correctly when building a link to the associated admin
3.6.1 - 2018-06-04
- Fix FieldDescription for multi-level embedded properties
- marked
sonata.admin.manager.ormas public service
3.6.0 - 2018-04-23
- Added
ProxyQuery::setDistinctandProxyQuery::isDistinct.
PageruseCountWalkerfor get count.
3.5.1 - 2018-04-10
- Now it is possible to use entities with arguments on the constructor on the Collection and Admin types.
3.5.0 - 2018-04-09
- Support for "datetime_immutable", "datetimetz_immutable", "date_immutable" and "time_immutable" Doctrine types at
TypeGuesser::guessType()andFilterTypeGuesser::guessType(). - Added json_array to type guesser
- Added doctrine/doctrine-bundle to composer.json
- embedded fields not working as filters
- "nl2br() expects parameter 1 to be string, object given" error caused at
base_show_field.html.twig.
3.4.2 - 2018-02-08
- Switch all templates references to Twig namespaced syntax
- Switch from templating service to sonata.templating
- Symfony 3.4 deprecation notice about getting private service AuditReader from the container
- Hide selects added by OrderByToSelectWalker from hydration
- Add orderBy field to select list for DataSourceIterator
setSortOrderinput is now validated
3.4.1 - 2018-01-18
- typo in ListBuilder
3.4.0 - 2018-01-18
- Switched to templates from SonataAdminBundle
- Association templates
- Fixed invalid PathExpression error in ProxyQuery
3.3.0 - 2017-12-16
- Added refresh of edit button URL if item was replaced by add/list action
- Allow to
adda new Model even if one is already selected - Fixed invalid PathExpression error in ProxyQuery
- Issue with edit button always showing initial item in popup
- Replaced FQCN strings with
::classconstants - deprecation about
Doctrine\ORM\Mapping\ClassMetadataInfo
3.2.0 - 2017-11-30
- Added edit button that opens in dialog instead of add if there is object already in sonata type model list
- Added
ProxyQuery::setHintwhich allow to pass Query hint in createQuery
- Change minimum doctrine/orm version to 2.4.5 because QueryBuilder bug on PHP7 and HHVM
- don't display fields that are missing in child classes
- warning about deprecate "e" modifier for
preg_replace - Fix sorting by multiple columns in custom createQuery in PostgreSQL and MySQL 5.7
- compatibility with Symfony 4
- Fix CollectionType on Symfony 3 when no type is specified
- It is now allowed to install Symfony 4
- Support for old versions of PHP and Symfony.
3.1.7 - 2017-09-14
- added the missing
sonata-ba-field-errorclass to table fields with errors - Replaced deprecated
getEntityManagerwithgetManager - Patched collection form handling script to maintain File input state when new items are added to collections
- Fixed invalid FieldDescription for association embedded properties
3.1.6 - 2017-07-05
- Throw an exception if property name is not found in field mappings
- Fixed
ModelManager::getDataSourceIteratorwhengetSortByis empty - Wrong DQL generated for many to many relationship when filtering with not equals
- Fixed ClassFilter for Symfony 3+. Remove deprecated for Symfony > 2.7
3.1.5 - 2017-06-16
- A list field with
actionstype will get all the required field options just like the_actionfield. _actionfield will get a properactionstype.ModelFilter::handleMultiplefix method to retrieve parent alias for building IDENTITY query part- One-to-many and many-to-many association script will not try to load links with "javascript:" hrefs via XHR.
- Fixed
AddAuditEntityCompilerPass::process()when definitionsimplethings.entityaudit.audited_entitiesis not present, as of2.xversion forsimplethings/entity-audit-bundle.
3.1.4 - 2017-03-23
- Fixed broken translation in oneToMany table view
- Fixed wrong translation in delete checkbox in
edit_orm_one_to_many_inline_table.html.twig
- Fixed view - check specific item collection, not to the whole collection.
3.1.3 - 2017-01-17
- Consider NULL values when using 'is not equal' advanced model filter
- Use the right array conversion for filter value
- Fixed wrong link generation when calling
DatagridMapper::addIdentifieron mapped field - Fixed duplicate translation of "Delete" in edit tab view
- Translation in twig templates uses the twig translation filter
3.1.2 - 2016-12-05
- ORM any-to-any list and show templates now use
hasAccess
- Fixed typo in exception message in
FormContractor
3.1.1 - 2016-10-04
- Use mor reliable
UnitOfWork::getEntityState()method to detect persisted entities. - Typo on
RuntimeExceptionusages
3.1.0 - 2016-09-12
- Date range filter can now be used with only one side defined
- Use class names for filters when using symfony 2.8+
- Changed how
FormContractor::getDefaultOptionschecks which type is used. Instead of checking for an array of available types, we improve this by checking for the class instance or parents.
- Allow not mapped field to use
admin_codeoption forsonata_type_model_list FormContractorsupports the newSonata\AdminBundle\Form\Type\ModelListType- Add missing translation of 'Delete' in edit view
- Use class name when referencing
Form Typeto be compatible with Symfony 2.8+
- internal test classes are now excluded from the autoloader
3.0.5 - 2016-06-05
- Fix
FormContractor::getDefaultOptionsnot checking against form types FQCNs
3.0.4 - 2016-06-17
- Fix wrong property name on FormContractor
- Create form is shown instead of filters on
sonata_type_model_listpopup
3.0.3 - 2016-06-09
- Failing identifier management for relations as id
- Deprecated usage of
formtype name
3.0.2 - 2016-06-03
- Avoid duplicate field in ORDER clause
- Support embedded object for mapping
3.0.1 - 2016-05-22
- Added missing default sort by primary key(s).
- Allow non integer/string types as identifier (ex. uuid).