Support "store" field type in grid #2262
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
If show a
coreShopStore
(store select) field in grid you'll get no dataThis is because
CoreShop\Bundle\StoreBundle\CoreExtension\Store
class hasn't methodgetDataForGrid
This method with all dependent methods
setOptions
andgetOptions
was copied from https://github.com/pimcore/pimcore/blob/10.5/models/DataObject/ClassDefinition/Data/Select.php (because Coreshop does not extend Pimcore's Select field type)Only return data was changed from
return $data;
toreturn $data?->getId();
because the getter returns aStore
object viaCoreShop/src/CoreShop/Bundle/ResourceBundle/CoreExtension/Select.php
Line 186 in bb483e7
The most important point why it did not work is that in
https://github.com/pimcore/pimcore/blob/a5b86f3f9a63ac76282acee00879fb52b416a4ce/bundles/AdminBundle/Resources/public/js/pimcore/object/tags/select.js#L99
field.layout.optionsProviderClass
is checked. This refers to a public fieldoptionsProviderClass
in the Store PHP class which did not exist before (only thegetOptionsProviderClass()
existed) and caused a JS error because of accessing a non-existing object property.With this PR it looks like this